将下一个匹配返回到列中的相等值

我经常需要search列以find匹配的值,然后返回相应的值。 我的问题是, INDEXMATCH总是返回列中的第一个值。

EX。 我有7个汽车经销商,这是上个月的销售。 奥斯陆和柏林在C列出售同样的金额和INDEX(D:E,MATCH(B1,E:E,0),1))将返回D列的第一击。

 ABCDE rank Sales Delaer 1 409 London | Tokyo 272 2 272 Tokyo | London 409 3 257 Hawaii | oslo 248 4 255 Stockholm | numbai 240 5 248 Oslo | Berlin 248 6 248 Oslo | hawaii 257 7 240 Numbai | Stockholm 255 

目前我最好的解决方法是首先findB每个值与MATCH(B1,E:E,0)并将其添加到新列( column F )。 然后我可以在下一列添加另一个公式,这就是我目前必须做的事情: =IF(F2=F1;MATCH(F2;INDIRECT("F"&(1+F1)):$F$7;0))+F2

有没有更好的方法呢?

在B2中使用下面的标准公式,

 =IFERROR(LARGE(E$2:E$8, ROW(1:1)), "") 

根据需要填写。

在C2中使用下面的标准公式,

 =INDEX(D$2:D$8, AGGREGATE(15, 6, ROW($1:$7)/(E$2:E$8=B2), COUNTIF(B$2:B2, B2))) 

根据需要填写。

Oslo_twice

[可选] – 修复A列中的排名

在A2中使用下面的公式,

 =SUMPRODUCT((B$2:B$8>=B2)/(COUNTIFS(B$2:B$8, B$2:B$8&""))) 

根据需要填写。

repair_oslo