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

时间:2015-12-03 07:25:31

标签: excel excel-formula

我经常需要搜索列以查找与值的匹配,然后返回相应的值。 我的问题是,INDEXMATCH始终返回列中的第一个值。

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

A       B      C                   D         E
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

目前我的最佳解决方案是首先找到BE的每个值与MATCH(B1,E:E,0)的行,并将其添加到新列(column F) 。然后我可以在下一栏中添加另一个公式,这是我目前要做的: =IF(F2=F1;MATCH(F2;INDIRECT("F"&(1+F1)):$F$7;0))+F2

这方面有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

在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