2016-09-19 102 views
0

假設我有一個數據集:如何獲得列名基於功能

A B C Final 
1 2 3 C 
4 5 6 C 

我想最終返回最大值的列名。在上面的例子中,3和6是最高值,所以列C將在'最終'列中返回。是否有一種有效的方法/公式可用於在不使用VBA的情況下獲取列名?真實的數據集包含60列。

回答

0

我會嘗試這樣的事情來獲得列字母。

=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)) 
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) 
0

您可以使用矢量形式的LOOKUP函數。

如果你的第一行,用A B C,就是標籤,然後:

=LOOKUP(2, 1/(MAX(A2:C2)=A2:C2),$A$1:$C$1)