在Excel中查找与INDEX的对应关系

我正在做一个Excel工作表,我必须根据一些标准来拾取所有匹配。

这是一个例子:

abr abr acm acm acr acr adm adm aem aem aer aer afr afr afm afm adr adr abm abm 

在这里输入图像说明

所以,最后必须用“r”或“m”来返回每一个代码,因为我可能会插入新的代码,这个代码必须是相当dynamic的,我现在使用这个公式

 ={IFERROR(INDEX($A$1:$D$10;SMALL(IF($C$1:$C$10="r";ROW($A$1:$A$10));ROW(A1));4);IFERROR(INDEX($A$1:$D$10;SMALL(IF($C$1:$C$10="m";ROW($A$1:$A$10));ROW(A1));4);""))} 

它返回代码“r”,这是我的公式中的第一个,但不适用于“m”。 看来问题是关于如何返回matrix的第k个值,即使我改变表的顺序。

任何意识?

提前致谢

我喜欢AGGREGATE与INDEX而不是SMALL:

 =IFERROR(INDEX($D$1:$D$10;AGGREGATE(15;6;ROW($C$1:$C$10)/(($C$1:$C$10="r")+($C$1:$C$10="m"));ROW(1:1)));"") 

如果你想使用SMALL的数组forms:

 =IFERROR(INDEX($D$1:$D$10;SMALL(IF(($C$1:$C$10="r")+($C$1:$C$10="m");ROW($C$1:$C$10));ROW(1:1))),"") 

要么

 =IFERROR(INDEX($D$1:$D$10;SMALL(IF(($C$1:$C$10="r");ROW($C$1:$C$10);IF(($C$1:$C$10="m");ROW($C$1:$C$10)));ROW(1:1)));"") 

请记住,小公式版本需要使用Ctrl-Shift-Enter进行确认。