在Excel中查找与索引的对应关系
我正在做一份Excel表格,我必须根据一些标准选择所有的比赛 这是一个例子:在Excel中查找与索引的对应关系,excel,excel-formula,Excel,Excel Formula,我正在做一份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”的代码。因为我可能会插入新代码,这必须是动态的。我目前
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个值有关,即使我更改了表的顺序
有什么想法吗
提前感谢我更喜欢指数聚合而不是小:
=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)));"")
=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;AGGREGATE(15;6;ROW($C$1:$C$10)/(($C$1:$C$10="r")+($C$1:$C$10="m"));ROW(1:1)));"")
=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))),"")
或
记住,小的公式版本需要用Ctrl-Shift-Enter确认。有点不清楚-你想返回什么?D列是你的公式的去向,还是你在使用a底部的组?我真的不知道公式中发生了什么/它是如何工作的,但为什么你不能使用
或()
?=IFERROR(索引($A$1:$D$10,小)(如果(或($C$1:$C$10=“m”),$C$1:$C$10=“r”)、行($A$1:$A$10))、行(A1))、4),”)
?@BruceWayne数组公式不喜欢或()或()对于聚合,它确实起了作用,但也有一些小的。我喜欢第一个小的,如此简单和聪明!@RodrigoSchneiderBender请单击答案旁边的复选标记,将其标记为正确。