Excel - 如何使用其他公式返回不同的匹配值?

Excel - 如何使用其他公式返回不同的匹配值?

我有下表和结果公式: 在此处输入图片描述

首先,我有销售人员和销售数量。

然后在 D 和 E 列中,我想知道谁是最好的销售人员。

E2中的公式是=LARGE($B$2:$B$11,$D2)并向下填充。

然后我想知道最佳销售人员的名字。F2 中的公式已=INDEX($A$2:$A$11,MATCH($E2,$B$2:$B$11,0))填入。

问题是,对于 Bob 和 Jeff 以及 Sue 和 Carl,25 和 15 分别出现了两次。但是在 F 列中,Bob 和 Sue 出现了两次,因为 Match 只返回第一次匹配。我需要 25 来列出 Bob,然后是 Jeff,15 来列出 Sue,然后是 Carl。

我想要的方法是检查 E 中的值出现了多少次。如果它出现了多次,则查找单元格旁边是该值的哪个实例,然后从名称的匹配中找到该值。因此,对于具有 2 个值的 25,F4 位于 E 中的第一个 25 旁边,因此它将返回 Bob,而 F5 位于第二个 25 旁边,将返回 Jeff。

听起来很简单,但我无法将其放入实际公式中。我试图在 F 中使用单个公式来给出所需的结果。

答案1

使用 AGGREGATE 作为 SMALL 函数将正确的行返回到 INDEX:

=INDEX(A:A,AGGREGATE(15,6,ROW($B$2:$B$11)/($B$2:$B$11=$E2),COUNTIFS($E$2:$E2,$E2)))

对于第一个数字实例将COUNTIFS($E$2:$E2,$E2)返回 1,对于第二个数字实例将返回 2,从而强制 AGGREGATE 返回第一个名称,然后返回第二个名称。

答案2

我的小尝试:

=IF(F1<>F2,INDEX($B$2:$B$13,MATCH(F2,$C$2:$C$13,0)),INDEX(OFFSET($B$2:$B$13,MATCH(G1,$B$2:$B$13,0),0,ROWS($B$2:$B$13)),MATCH(F2,OFFSET($B$2:$B$13,MATCH(G1,$B$2:$B$13,0),1,ROWS($B$2:$B$13)),0)

相关内容