Index 和 Match 函数用于根据多个条件定位值

Index 和 Match 函数用于根据多个条件定位值

对于给定的数据,我想找到绿色苹果的数量。

在此处输入图片描述

已创建命名范围fruit_、color_、quantity_。

使用这个公式:

=INDEX(quantity_,MATCH(1, (苹果 = 水果_) * (绿色 = 颜色_), 0))

我很感谢帮助我解决错误的地方。

@dav:您还可以使用数据验证为您的选择创建下拉列表并在公式中引用这些单元格。这是使用数据透视表创建的下拉菜单。

在此处输入图片描述

答案1

你可以用一个简单的统计分析系统
=SUMIFS(C2:C5,A2:A5,"Apple",B2:B5,"Green")

如果有多行包含 Apples | Green,那么您最终会得到所有行的总和,但是如果只有一行,您将获得列出的直接结果。

如果您的数据变得更加复杂,您可以将其转换为表格并使用列名以提高可读性。您还可以使用数据验证为您的选择创建下拉列表并在公式中引用这些单元格。

更新:

(非枢轴)表

在您的问题更新中,您添加了数据透视表,而我建议使用表格。这是两种不同的方法,每种方法都有自己的优点/缺点。为了回答您的原始问题,我建议使用桌子 Insert > Table。这有两个主要优点:

  1. 你可以使用 Excel 的结构化引用,基本上是强化版的命名山脉。
  2. 随着行添加到表中,范围会自动增大

如果应用到你的原始列表,它将看起来像这样:

表格样本

假设你tbl_su19709728使用结构化引用命名你的表格,你的公式可以更改为=SUMIFS(tbl_su1709728[count],tbl_su1709728[fruit],"apple",tbl_su1709728[color],"green")

您还可以使用表的列标题过滤器直接过滤行。

数据透视表

您可以创建一个数据透视表,并将其格式化为与上面显示的表格非常相似的格式。

数据透视表

但是,您不能在公式中使用结构化引用来引用数据透视表值。您可以使用获取数据但与结构化引用相比,它非常复杂且难以阅读。

下拉选择

此外,如前所述,您可以使用数据验证来构建公式。这将创建一个不错的用户界面,并且设置起来并不困难。直接过滤表格(使用表格的标题过滤器)有点多余。

使用数据验证时的一些注意事项:

  1. 您不能在数据验证公式中直接使用结构化引用。要使用结构化引用,您需要使用结构化引用为列创建命名范围。
  2. 如果表格的列有重复项,则数据验证列表将有相同的重复项。不幸的是,UNIQUE 返回一个数组值,不能用于数据验证。您可以使用辅助列和 OFFSET 和 INDIRECT 来克服这个问题,但它会变得更加复杂。
  3. 它不会捕获无效组合(例如黄葡萄)。您可以通过创建一个结合水果和颜色的计算列来防止这种情况,然后在该列上运行数据验证,仅返回有效组合。

最后,您需要在设置的复杂性和易用性之间找到平衡。

相关内容