【问题标题】:Ignore duplicate names to select required critera, excel忽略重复名称以选择所需条件,excel
【发布时间】:2019-01-10 12:18:34
【问题描述】:

我正在使用以下公式根据 2 个标准提取特定日期 - 日期单元格 G1 和代理名称单元格 G2:G12

数据有重复,所以同一个名字可能会出现 4 次,每个名字旁边的信息不同。该公式将从出现的第一个名称中获取数据,但是我希望它获取可能出现在第三个重复项旁边的特定数据。

=INDEX($C$1:$C$11,MATCH($G$1&$G2,$A$1:$A$11&$B$1:$B$11,0))

有什么方法可以添加到我当前的公式(或使用其他公式)中,如果它们不包含特定的所需信息,则忽略名称?

C列是数据,B显示可能的重复名称,E显示需要从C中的数据中提取哪些数据

【问题讨论】:

  • 在您的信息中,我没有看到您如何决定要返回哪些具体信息
  • 抱歉 - 编辑了问题以尝试更有意义并修改了屏幕截图
  • 那么如果少于三个重复,你要返回一个空白吗?
  • 所以我希望它返回 E 列中的异常代码之一,如果它们位于名称旁边,则忽略列表中没有的任何其他异常代码(可能出现在重复名称旁边)。如果名称旁边没有出现来自 E 的异常代码,则返回空白。
  • 为什么不直接使用过滤器?

标签: excel indexing match


【解决方案1】:

最简单的可能是一个过滤器。

但是这个 array 公式也应该有效。 我使用了表格和结构化引用,但如果您不想这样做,您可以更改对单元格引用的引用。但我发现 Tables 使用起来非常方便,因为您会自动获得动态范围参考。

H2:  =IFERROR(INDEX(Codes[Req Codes],AGGREGATE(14,6,MATCH(INDEX(fullTbl[[#All],[Exception code]],N(IF(1,1/((fullTbl[Date]=$G$1)*(fullTbl[Agent Name]=G2))*ROW(fullTbl)))),Codes,0),1)),"")

由于这是一个数组公式,您需要通过按住 ctrl + shift 的同时点击 enter 来“确认”它。如果您正确执行此操作,Excel 将在公式周围放置大括号 {...},如公式栏中所示。

编辑:对于不使用表格/结构化引用的公式,请尝试:

=IFERROR(INDEX($E$2:$E$5,AGGREGATE(14,6,MATCH(INDEX($C$1:$C$13,N(IF(1,1/(($A$2:$A$13=$G$1)*($B$2:$B$13=G2))*ROW($A$2:$C$13)))),$E$2:$E$5,0),1)),"")

使用高级过滤器:

【讨论】:

  • 这似乎对我不起作用,除非我做错了什么。我已将数据放在与上述相同的单元格中,并将您的公式与数组一起使用 - =INDEX(E2:E5,AGGREGATE(14,6,MATCH(INDEX(A2:C13,C2:C13,N(IF(1 ,1/((A2:A13=$G$1)*(B2:B13=G2))*ROW(A2:C13)))),E2:E5,0),1))
  • @bprin87 您没有正确转换参考。查看我的编辑
猜你喜欢
  • 2014-04-25
  • 2017-08-01
  • 2011-12-05
  • 1970-01-01
  • 1970-01-01
  • 2020-05-31
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
相关资源
最近更新 更多