2016-09-19 5 views
0

Angenommen habe ich einen Datensatz:Wie einen Spaltennamen erhalten, basierend auf Funktion

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

Ich möchte endgültig den Spaltennamen des Max-Wert zurückzukehren. Im obigen Beispiel sind 3 und 6 die höchsten Werte, daher werden die Spalten C in der Spalte 'Final' zurückgegeben. Gibt es eine effiziente Methode/Formel, mit der Sie die Spaltennamen ohne Verwendung von VBA abrufen können? Das reale Dataset enthält 60 Spalten.

Antwort

0

Ich würde so etwas versuchen, um den Spaltenbuchstaben zu erhalten.

=SUBSTITUTE(ADDRESS(1,MATCH(MAX(A3:C3),A3:C3,0),4),1,"") 

Wenn Sie den Header wollen, ich denke, es ist ein einfacher Weg, aber die Erweiterung von dieser

=INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH(MAX(A3:C3),A3:C3,0),4),1,"")&1) 

Für den Header wäre, den besseren Weg

=INDEX(A1:C1,1,MATCH(MAX(A3:C3),A3:C3,0)) 
0

HLOOKUP ist ein Weg ohne VBA, aber leider sucht WVERWEIS nur in der ersten Zeile des Arrays, also sollten Sie die "Title-Spalte" am unteren Rand hinzufügen

A B C Final 
1 2 3 <formula1> 
4 5 6 <formula2> 
A B C 

Wenn der Datensatz auf den ersten Ecke beginnt, würde Formel1 sein:

=HLOOKUP(MAX(A2:C2);A2:C4;2;FALSE) 

Formula2

=HLOOKUP(MAX(A3:C3);A3:C4;1;FALSE) 

etc ...

=HLOOKUP(MAX($A3:$C3);$A3:$C$4;<manual change here backward>;FALSE) 
0

Sie können den Vektor verwenden wird Form der LOOKUP Funktion.

Wenn die erste Reihe, mit einem B-C, werden die Etiketten, dann gilt:

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