显示每行中最高X值的行标题(用于排名列表)

时间:2014-02-21 22:24:35

标签: excel excel-formula

我无法在Excel中对表格中的某些项目进行排名和显示。显示我正在尝试创建的简化示例的图像是在此链接(它不会让我发布图像,因为我还是新来的):

enter image description here

对于每一行(或形状,这里),我想在H,I和J列中显示最常用的三种类型的Header列(在本例中为颜色)。

我已尝试过针对H列(最受欢迎)的以下公式的变体:

=INDEX($A$2:$F$2,1,MATCH(LARGE($A3:$F3,1),$A3:$F3,0))

...然后,将LARGE()函数中的“1”更改为“2”,将第I列和第J列更改为“3”。

这适用于查找最大数字并返回H的列Header,但是当行中存在多个特定数字的实例时,它无法处理。

给出的示例:对于三角形(第5行),它在列H,I和J中出现“蓝色”,而不是查找下一个相等/更低的数字。对于Circles,它给我“蓝色”,“蓝色”,“绿色” - 它知道Green(2)低于Blue(3),但不能说Yellow(3)也高于Green,因为一旦找到最高编号的第一个实例(在本例中为蓝色),它就会停止搜索。

我不介意它不承认格林实际上是'第一平等'而不是第二。我很高兴从左到右优先考虑它,但是我需要它来显示前三个(以及更多,一旦我扩展)而不重复结果。

如果可以的话,我想避免任何VBA,并且觉得必须有办法轻松地做到这一点。

1 个答案:

答案 0 :(得分:1)

可能的解决方法

我假设值是整数

我们的想法是将一个非常小的值乘以该列减去每个值,以便没有相等的值

创建第二张工作表(我假设工作表名称是Sheet1和Sheet2)

将公式放在Sheet2中:

A3 | = Sheet1!B3-0.00001*COLUMN()| = Sheet1!C3-0.00001*COLUMN()| = Sheet1!D3-0.00001*COLUMN()| = Sheet1!E3-0.00001*COLUMN()| = Sheet1!F3-0.00001*COLUMN()|
A4 | = Sheet1!B4-0.00001*COLUMN()|...
A5 | ...
....

并将公式更改为 “= INDEX($ B $ 2:$ F $ 2,1,MATCH(大( Sheet2! $ B 3:$ F3,1) , Sheet2! $ B 3:$ F3,0))“