当两个数字相同时,下一个最高值

时间:2012-11-28 14:30:13

标签: excel

我正在尝试根据以下公式查找单元格:

= vlookup(大($ A $ 2:$ A $ 10,1),$ A $ 2:$ C $ 10,3,false)获取最大值 = vlookup(大($ A $ 2:$ A $ 10,2),$ A $ 2:$ C $ 10,3,false)为第二高值

等等

我的问题是当公式的这一部分有两个相同的值时“(大($ A $ 2:$ A $ 10,2)但是查找值不同。例如,当系列看起来像此 -

Max 10(Car),2(Truck),2(Van),4(Motorcycle)

我返回(汽车),(摩托车),(卡车),(卡车) ......而不是(汽车),(摩托车),(卡车),(范)。

有没有人知道使用公式或vba的解决方案?

谢谢!

2 个答案:

答案 0 :(得分:1)

......我能想到这样做的唯一方法(但我希望看到其他人的解决方案)正在创建一个额外的“辅助列”。

假设您的数据如下所示:

ColA          ColB             ColC           ColD     
10            [whatever]       Car            [Formula]
2             [whatever]       Truck          [Formula]
2             [whatever]       Van            [Formula]
4             [whatever]       Motorcycle     [Formula]

我会在A列和A列之间添加一个新列。 B并按如下方式输入公式

在(新)B2中:

=A2 + COUNTIF($A$2:A2,A2)/100

现在,当你向下拖动时,它会将每个重复值增加0.01,如下所示:

ColA        ColB         ColC             ColD           ColE     
10          10.01        [whatever]       Car            [Formula]
2           2.01         [whatever]       Truck          [Formula]
2           2.02         [whatever]       Van            [Formula]
4           4.01         [whatever]       Motorcycle     [Formula]

然后只需更新您的Vlookup公式即可开始查看B列而不是A列。

希望这是有道理的......

答案 1 :(得分:0)

你能否在A栏上排序,降序?然后您的Excel公式可能是:

=vlookup($A2,$A2:$C$10,3,false) 
=vlookup($A3,$A3:$C$10,3,false)
=vlookup($A4,$A4:$C$10,3,false) 

实际上,比这更容易,你的公式可能只是:

=$C2
=$C3