忽略重复的名称以选择所需的critera,excel

时间:2019-01-10 12:18:35

标签: excel indexing match

我正在使用以下公式基于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中的数据中提取什么数据

enter image description here

1 个答案:

答案 0 :(得分:0)

最简单的事情可能是过滤器。

但是这个 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)),"")

由于这是一个数组公式,因此您需要在按下 enter 的同时按住 ctrl + shift 来“确认”它。如果正确执行此操作,则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)),"")

enter image description here

使用高级过滤器:

enter image description here