使用多个条件在 Excel 上查找数据

使用多个条件在 Excel 上查找数据

尝试使用单元格引用提取数据,而不是像 =SUMIFS 函数要求的那样在公式中包含条件。此外,=VLOOKUP 不允许我在公式中包含条件,也不允许我在引用左侧查找值。

在下面显示的示例中,我仅希望提取 ALFA 和 DEN 公司的集装箱编号和价格值。

在此处输入图片描述

答案1

对于 2016 年及更早的版本,我们需要使用某种形式的 SMALL INDEX。我喜欢 AGGREGATE,因为它可以忽略错误。

基本的聚合是:

AGGREGATE(15,7,ROW($B$2:$B$7)/(ISNUMBER(MATCH($B$2:$B$7,{"ALFA","DEN"},0))),ROW($ZZ1)))

当它迭代 $B$2:$B$7 中的单元格时,它会返回一个行号和错误的数组。这7告诉公式忽略错误。

ROW($ZZ1)1是一个从 开始然后向下拖动到下一个的计数器。这告诉 Aggregate 将数组中的哪一个返回到 INDEX。

然后我们将其包装在 INDEX 中:

=IFERROR(INDEX(A:A,AGGREGATE(15,7,ROW($B$2:$B$7)/(ISNUMBER(MATCH($B$2:$B$7,{"ALFA","DEN"},0))),ROW($ZZ1))),"")

注意,AGGREGATE 中的引用是特定于数据集的,而索引不是。我们希望限制 AGGREGATE 中的引用,以限制迭代次数。

然后我们只需将A:A索引中的替换为C:C即可获得第二列。并将两个公式向下拖动,直到得到空白

在此处输入图片描述


在 Office 365 中这变得容易得多:

=FILTER(CHOOSE({1,2},A:A,C:C),ISNUMBER(MATCH(B:B,{"ALFA","DEN"},0)))

结果将自动溢出。

相关内容