我在Excel中有一个如下所示的数据:
A 17 8,5 5,666666667 4,25 3,4 2,833333333 2,428571429
B 5 2,5 1,666666667 1,25 1 0,833333333 0,714285714
C 5 2,5 1,666666667 1,25 1 0,833333333 0,714285714
G 4 2 1,333333333 1 0,8 0,666666667 0,571428571
我想找一个代表特定值的字母。例如,如果我搜索" 17"我想得到输出" A"如果我正在寻找0,8我想得到" G"。任何人都可以帮助我吗?
(实际上我想找到数据中从最大值到最低值的所有值,并找到值的相应字母)
答案 0 :(得分:3)
=INDEX($A$1:$A$4,AGGREGATE(14,6,ROW($B$1:$H$4)/(L3=$B$1:$H$4),1))
假设您的示例数据位于A1:H4范围
如果您有重复的值,可以找到此公式将返回最大行号中的值。如果您想要第一行编号中的值,可以将14更改为15。
=INDEX($A$1:$A$21,AGGREGATE(14,6,ROW($B$18:$L$21)/(L3=$B$18:$L$21),1))
=INDEX($A$18:$A$21,AGGREGATE(14,6,ROW($B$18:$L$21)/(L3=$B$18:$L$21),1)-ROW($A$18)+1)
移动它时遇到的问题很可能是因为您的范围参考更改。从聚合检查返回的行号必须是索引范围内的一行。因此,选项1保持索引范围较大,但匹配聚合结果中的所有可能行。选项二将范围缩小到仅数据,并调整结果以减去数据之前的行数,因此它实际上指的是您想要查看的索引范围内的哪一行。
感谢Scott Craner指出完整的列引用在聚合函数之外是完全可以接受的,你也可以使用:
=INDEX($A:$A,AGGREGATE(14,6,ROW($B$18:$L$21)/(L3=$B$18:$L$21),1)