【问题标题】:Index Match + multiple criteria + return list/range索引匹配+多个条件+返回列表/范围
【发布时间】:2021-06-08 00:16:16
【问题描述】:

我正在尝试在表格中查找内容并使用公式返回它们,并满足以下要求:

  1. 在查找中包含两个条件(列)
  2. 需要返回所有匹配项的列表而不是单个项目

我已经找到了自己做这些事情的方法(对#1 使用更复杂的索引匹配,对#2 使用“:”运算符来指定一个范围并以数组的形式返回一个列表),但是每当我尝试将它们组合起来时,它都不起作用。

我在下面分享了一个示例,其中“表 1”是源数据,“我们的选择”是查找的参考。有人可以告诉我一个公式,该公式可以放入提到的单元格中,该公式将返回“交互”列(表 1)中相关条目的绿色“返回列表”?

我正在运行带有 Excel 版本 16.46 的 Mac 提前致谢!

image

【问题讨论】:

标签: arrays indexing excel-formula match


【解决方案1】:

不清楚您的数据开始/结束的列/行,但我假设您的表格从 A2 开始,您的项目选择在 E2 中,您的过滤器从 E6 开始

在这种情况下,在E6 中使用以下数组公式并向下拖动: =IFERROR(INDEX(C:C,MATCH(1,(A:A=E$2)*(B:B=E$3)*(COUNTIF(E$5:E5,C:C)=0),0)),"") 数组公式要输入ctrl+shift+enter

如果您在哪里可以使用 Office 365,则此公式可以解决问题: =FILTER(C:C,(A:A=E$2)*(B:B=E$3)*(C:C<>"")) 这将自动调整出现次数。

【讨论】:

    【解决方案2】:

    下面的页面解释了一个类似的情况,只是它没有返回一个数组。它适用于索引。因此,您必须将公式放在足够多的行中以显示所有匹配项: https://www.xelplus.com/return-multiple-match-values-in-excel/

    在你的情况下,公式是这样的:

    =IF(ROWS($A$2:A2)<=COUNTIFS($A$2:$A$18,$G$2,$B$2:$B$18,$G$3),INDEX($C$2:$C$18;AGGREGATE(15,3,(($A$2:$A$18&$B$2:$B$18=$G$2&$G$3)/($A$2:$A$18&$B$2:$B$18=$G$2&$G$3)*ROW($A$2:$A$18))-ROW($A$1),ROWS($E$2:E2))),"")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-04-21
      • 1970-01-01
      • 2016-10-14
      • 1970-01-01
      • 2019-01-11
      • 2019-12-28
      • 1970-01-01
      相关资源
      最近更新 更多