假设我有一个数据集:如何获得列名基于功能
A B C Final
1 2 3 C
4 5 6 C
我想最终返回最大值的列名。在上面的例子中,3和6是最高值,所以列C将在'最终'列中返回。是否有一种有效的方法/公式可用于在不使用VBA的情况下获取列名?真实的数据集包含60列。
假设我有一个数据集:如何获得列名基于功能
A B C Final
1 2 3 C
4 5 6 C
我想最终返回最大值的列名。在上面的例子中,3和6是最高值,所以列C将在'最终'列中返回。是否有一种有效的方法/公式可用于在不使用VBA的情况下获取列名?真实的数据集包含60列。
我会尝试这样的事情来获得列字母。
=SUBSTITUTE(ADDRESS(1,MATCH(MAX(A3:C3),A3:C3,0),4),1,"")
如果您想报头,我想有一个更简单的方法,但这种扩展将是
=INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH(MAX(A3:C3),A3:C3,0),4),1,"")&1)
对于头,更好的方式
=INDEX(A1:C1,1,MATCH(MAX(A3:C3),A3:C3,0))
HLOOKUP是没有VBA的方式,但很遗憾HLOOKUP只在数组的第一行进行搜索,因此您应该在底部添加“标题栏”
A B C Final
1 2 3 <formula1>
4 5 6 <formula2>
A B C
如果数据集开始于第一个弯道,一级方程式是:
=HLOOKUP(MAX(A2:C2);A2:C4;2;FALSE)
Formula2将
=HLOOKUP(MAX(A3:C3);A3:C4;1;FALSE)
等等
=HLOOKUP(MAX($A3:$C3);$A3:$C$4;<manual change here backward>;FALSE)
您可以使用矢量形式的LOOKUP
函数。
如果你的第一行,用A B C,就是标签,然后:
=LOOKUP(2, 1/(MAX(A2:C2)=A2:C2),$A$1:$C$1)