我正在制作一张Excel表格,我必须按照一些标准拾取所有比赛。
这是一个例子:
a b r abr
a c m acm
a c r acr
a d m adm
a e m aem
a e r aer
a f r afr
a f m afm
a d r adr
a b m abm
因此,它必须返回每个代码" r"或" m'在末尾。由于我可能会插入新代码,因此必须非常动态。我目前正在使用这个公式
={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"。似乎问题与如何返回矩阵的第k个值有关,即使我改变了表的顺序。
任何想法?
提前致谢
答案 0 :(得分:1)
我更喜欢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的数组形式:
=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确认小公式版本。