Teodros IV Asked: 2021-06-26 09:03:24 +0800 CST2021-06-26 09:03:24 +0800 CST 2021-06-26 09:03:24 +0800 CST 使用多个条件在 Excel 上查找数据 772 尝试使用单元格引用提取数据,而不是按照 =SUMIFS 函数的要求在公式中包含标准。此外, =VLOOKUP 不允许我在公式中包含标准以及在参考左侧查找值。 在下面显示的示例中,我希望仅提取 ALFA 和 DEN 公司的容器编号和价格值。 microsoft-excel worksheet-function 1 个回答 Voted Best Answer Scott Craner 2021-06-26T09:23:59+08:002021-06-26T09:23:59+08:00 对于 2016 年及更早的版本,我们需要将 INDEX 与某种形式的 SMALL 一起使用。我喜欢 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移动到下一个,因为它被向下拖动。这告诉聚合数组中的哪一个返回到索引。 然后我们用 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))) 结果会自动溢出。
对于 2016 年及更早的版本,我们需要将 INDEX 与某种形式的 SMALL 一起使用。我喜欢 AGGREGATE,因为它允许忽略错误。
基本的聚合是:
当它迭代 $B$2:$B$7 中的单元格时,它返回一个行号和错误数组。
7
告诉公式忽略错误。ROW($ZZ1)
是一个计数器,从开始1
移动到下一个,因为它被向下拖动。这告诉聚合数组中的哪一个返回到索引。然后我们用 INDEX 换行:
请注意,AGGREGATE 中的引用特定于数据集,而索引则不是。我们希望限制 AGGREGATE 中的引用以限制迭代次数。
然后我们只需将
A:A
索引中的替换为C:C
以获取第二列。并向下拖动两个公式,直到我们得到空白这在 Office 365 中变得更加容易:
结果会自动溢出。