Excel: Gibt es eine Funktion, die basierend auf der in einer Zelle enthaltenen Zeichenfolge eine Zahl zurückgibt, wie etwa „CHOOSE“, aber nicht?

Excel: Gibt es eine Funktion, die basierend auf der in einer Zelle enthaltenen Zeichenfolge eine Zahl zurückgibt, wie etwa „CHOOSE“, aber nicht?

Ich brauche eine Funktion =Func(A1, "Alex, "Betty", "Charlie"), die den Index des übereinstimmenden Eintrags zurückgibt. Wenn diese Funktion in B1:B13 eingefügt wird, würde sie anzeigen

"Charlie"   3
"Alex"      1
"Alex"      1
"Alex"      1
"Charlie"   3
"Charlie"   3
"Betty"     2
"Charlie"   3
"Charlie"   3
"Betty"     2
"Betty"     2
"Betty"     2
"Alex"      1

Auf den ersten Blick dachte ich, dass CHOOSE dies tun würde, aber es gibt eine Referenz basierend auf einer Ganzzahl zurück, das Gegenteil von dem, was ich brauche.

Gibt es eine vorhandene Funktion, die dies tut, die ich übersehen habe? Muss ich aus etwas wie verschachtelten ifs oder vlookup eine kompliziertere Funktion erstellen oder muss ich eine Funktion in VBA schreiben?

Vielen Dank für Ihre Zeit und Hilfe.

Antwort1

Wenn Sie die zu vergleichenden Werte in einen Bereich an einer anderen Stelle in der Tabelle einfügen können, können Sie die Funktion LOOKUP verwenden. LOOKUP sucht nach seinem ersten Argument im Bereich, der im zweiten Argument angegeben ist, und gibt den entsprechenden Wert aus dem Bereich im dritten Argument zurück. Sie müssen einen Bereich hinzufügen, der den gewünschten Wert angibt.

Beispielsweise erstelle ich die Nachschlagetabelle in F1:F3 und G1:G3:

    FG
1 Alex 1
2 Betty 2
3 Charlie 3

Dann ist die zu verwendende Funktion

    B
1 =VERWEIS(A1,$F$1:$F$3,$G$1:$G$3)
2 =VERWEIS(A2,$F$1:$F$3,$G$1:$G$3)

In Zelle B1 sucht LOOKUP nach A1 („Charlie“), findet es in F3 und gibt den Wert aus G3 zurück, der 3 ist. In Zelle B2 sucht LOOKUP nach A2 („Alex“), findet es in F1 und gibt den Wert aus G1 zurück, der 1 ist.

Sie können die Nachschlagetabelle auch in ein anderes Blatt der Arbeitsmappe einfügen, wenn Sie sie nicht im Hauptblatt haben möchten.

Antwort2

Ich bin nicht 100 % sicher, wie Ihre Quelldaten aussehen, aber die MATCH-Funktion betrachtet einen einzelnen Wert und gibt seine Position innerhalb eines Arrays zurück.

Wenn A1:A4

Alex
Betty
Charlie
Betty

und in B1 setzen Sie

=MATCH(A1,$A$1:$A$4)

B1 wird zurückkehren

1

Anschließend füllen Sie einfach B1 bis B4 aus und schon erhalten Sie Ihr Ergebnis.

verwandte Informationen