我有一个工作簿,导入时会以相当具体的方式进行设置。我只需查找一次,就可以快速轻松地将它们整理成更易读的形式。
但是,如果不使用强大的 IF 函数,我就会很挣扎。
我使用 Match 找出列号。每列都有从 1 到 26 的数字。这些数字不会在同一列中重复,但在所有列中都会重复。
因此,我尝试找出如何使其返回每个值的行号,以便我可以使用 INDEX 来提取第二位数据。
我附上了一个示例来说明我的意思。我试图让它根据行中是否有相应的数字返回动物的名称。在我查看的示例中,我的目标是将驴放在“名称 1”旁边,将老鼠放在“名称 2”旁边,依此类推。如果我将零件编号更改为 501,我希望它返回猫而不是驴。
也许 VBA 的解决方案最适合这种情况?不过,我仍在学习这方面的内容。也许我只是想得太多了,实际上这比我想象的要容易得多!当然看起来应该是这样的。
提前致谢。
答案1
也许我忽略了一些东西,因为我确实认为你想得太多了。
要获取行号,=ROW()
根据 OP 反馈更新,用于MATCH
获取行。这仅适用于第一场比赛。
对于所有行,使用数组函数:
=INDEX($B$3:$B$8, SMALL(IF(ISNUMBER(MATCH($A$3:$A$8, $G$4, 0)), MATCH(ROW($A$3:$A$8), ROW($A$3:$A$8)), ""), ROWS($A$1:A1)))
将此公式粘贴到 H4 中,然后选择 H5 和 H6,然后按 Ctrl + Shift + Enter 应该会得到 Donkey、Cat、Dog