Ich habe eine Reihe mit 6 alphanumerischen Werten wie im Bild. Ich brauche eine Formel, die die drei höchsten numerischen Werte in jeder Reihe ermittelt und dann die mit diesen Werten verbundenen Buchstaben in der richtigen Reihenfolge (absteigend) anzeigt. Zeile 1 ergibt beispielsweise eine Antwort RES, da R der höchste Wert in der Reihe ist, gefolgt von E, gefolgt von S. Wo eine Übereinstimmung vorliegt (wie oben), wird der zuerst angezeigte Wert bevorzugt. Ich bin ein einfacher Excel-Benutzer und bin damit ratlos. Ich kann Elemente der Lösung erstellen, aber es gefällt mir nicht, wenn ich versuche, sie zu kombinieren. Ich bin dankbar für Ihre Hilfe.
Antwort1
Wie es funktioniert:
Meine Quelldaten liegen im Bereich A2:F3
.
Schreiben Sie diese Formel in die Zelle,
B6
um Alphabete aus den Quelldaten zu trennen und auszufüllenRechts.=LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
Um Zahlen aus Quelldaten zu trennen, geben Sie diese Formel in die Zelle ein
B7
, füllen SieRechts, dann runter.=VALUE(RIGHT(A2,LEN(A2)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1))
In Zelle
B10
schreiben Sie diese Array-Formel, füllenRechtsdann drückenF2
und fertigstellenCtrl+Shift+Enter
und füllenRunter.{=LARGE(B7:G7,{1,2,3})}
Schreiben Sie diese Formel in „Zellenfüllung
B13
“RechtsDannRunter.=IFERROR(INDEX(B$6:$G$6,MATCH(B10,B7:$G7,0)),"")
B16
Zum Schluss schreiben Sie diese Formel in Cell und füllen sie ausrunter.
=CONCATENATE(B13,C13,D13)
Passen Sie die Zellabstände in der Formel nach Bedarf an.
Antwort2
Angenommen, Ihre Daten „R35“ befinden sich unter A1
.
Tun
H1 ---> =VALUE(RIGHT(A1,LEN(A1)-1))
und ziehen Sie, bis L1
, dann
N1 ---> =IF(COUNTIF($H1:$L1,H1)=1,H1,H1+0.5)
O1 ---> =IF(COUNTIF($H1:$L1,I1)=1,I1,I1+0.4)
P1 ---> =IF(COUNTIF($H1:$L1,J1)=1,J1,J1+0.3)
Q1 ---> =IF(COUNTIF($H1:$L1,K1)=1,K1,K1+0.2)
R1 ---> =IF(COUNTIF($H1:$L1,L1)=1,L1,L1+0.1)
Dann
T1 ---> =RANK(N1,$N1:$R1,0)
und ziehen Sie, bis X1
, dann
Z1 ---> =INDEX($A1:$F1,MATCH(1,$T1:$X1,0))
AA1 ---> =INDEX($A1:$F1,MATCH(2,$T1:$X1,0))
AB1 ---> =INDEX($A1:$F1,MATCH(3,$T1:$X1,0))
Dann
AD1 ---> =LEFT(Z1)&LEFT(AA1)&LEFT(AB1)
zuletzt... auswählen H1:AD1
und ziehen, bis AD6
.
Die Spalte AD sollte das sein, wonach Sie suchen. Sie können die Spalten ausblenden oder in einem anderen Blatt ausführen, damit es einfacher aussieht.
Teilen Sie uns bitte mit, wenn Sie nicht weiterkommen (beim Verstehen oder Umsetzen der Formel). (:
ich hoffe es hilft.
p/s: +0,5, +0,4 ... +0,1 wird verwendet, um diese Anforderung zu erfüllen
der Erste, der erscheint, erhält den Vorzug
Antwort3
Ich brauchte 6 Hilfszellen, ohne VBS zu verwenden. Wenn Ihre Daten also in A1 bis F1 liegen:
setze G1 auf
=INT(RIGHT(A1,2)&"006")
setze H1 auf
=INT(RIGHT(B1,2)&"005")
setze I1 auf
=INT(RIGHT(C1,2)&"004")
setze J1 auf
=INT(RIGHT(D1,2)&"003")
setze K1 auf
=INT(RIGHT(E1,2)&"002")
setze L1 auf
=INT(RIGHT(F1,2)&"001")
und M1 zu
=LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,1),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,2),G1:L1,0))),1)&LEFT(INDIRECT(ADDRESS(ROW(),MATCH(LARGE(G1:L1,3),G1:L1,0))),1)
Sie sollten in der Lage sein, diese 7 Formeln in Ihre Zeilen zu kopieren und einzufügen. Beachten Sie, dass doppelte Werte von links nach rechts behandelt werden.