In Excel 2013 möchte ich in der Zeile, in der ein String mit einem String in Spalte A übereinstimmt, den Wert in Spalte B finden. Erschwerend kommt hinzu, dass die Strings in Spalte A kürzer sein dürfen als der gesuchte Wertstring. Beispiel:
Column A Column B
ABCD- Result1
EF Result2
BCD Result3
Nun Beispiele für Zeichenfolgen, die zurückgegeben werden sollen ...
"Result1": "ABCD-", "ABCD-EFG", "ABCD-H"
"Result2": "EF", "EFG", "EFGHIIJKL"
"Result3": "BCD", "BCDXY"
„ABCD“ sollte kein Ergebnis zurückgeben.
Angenommen, die gesuchte Zeichenfolge befindet sich in Zelle C1.
Muss ich auf ein Makro zurückgreifen oder gibt es hierfür eine Formel?
UPD: Es werden mehrere gesuchte Zeichenfolgen vorhanden sein, die sich tatsächlich in einer Spalte auf einem anderen Blatt befinden, und am Anfang werden keine Platzhalter stehen. Der gesuchte Wert könnte in der Spalte neben der Spalte mit den gesuchten Zeichenfolgen stehen.
UPD2: Angenommen, der Inhalt der Spalten A und B befindet sich auf Blatt1 und der Inhalt auf Blatt2 unten:
SoughtString ResultFound
ABCD- Result1
EF Result2
BCD Result3
BCDXY Result3
EFG Result2
ABCD-EFG Result1
EFGHIIJKL Result2
ABCD-H Result1
ABCD No match
Die leicht modifizierte Matrixformel aus der akzeptierten Antwort in Zelle B2 nach unten kopieren:
=IFERROR(INDEX(Sheet1!B$2:B$4;MATCH(1;COUNTIF(A2;Sheet1!A$2:A$4&"*")*(Sheet1!A$2:A$4<>"");0));"No match")
Antwort1
Vorausgesetzt, Sie haben Daten in den Zeilen 2 bis 10, können Sie diese „Array-Formel“ verwenden.
=IFERROR(INDEX(B$2:B$10,MATCH(1,COUNTIF(C1,A$2:A$10&"*")*(A$2:A$10<>""),0)),"No match")
bestätigt mit CTRL+ SHIFT+ENTER
Antwort2
Es ist nicht klar, welche Rolle C1 spielt. Wenn die gesuchten Zeichenfolgen bereits in einer Spalte vorhanden sind, können Sie diese als Spalte A von Blatt2 anzeigen. Wenn sie sich an einer anderen Stelle befinden, können Sie Spalte A erstellen, indem Sie einfach auf die zugehörige Zelle in der anderen Liste verweisen. Wenn sich die Liste beispielsweise in Spalte Z befindet und in Zeile 2 beginnt, wäre A2 =Z2
, und Sie könnten diese Formel in Spalte A nach unten kopieren, um mehr Zellen vorab auszufüllen, als Sie benötigen (diese bleiben leer, bis sie benötigt werden).
Wenn die gesuchte Stringliste mit jeweils einem neuen Eintrag erstellt wird, können Sie die neuen Einträge einfach an die nächste Position in der jeweiligen Liste (Spalte Z oder Spalte A) setzen. Wenn die neuen Einträge in C1 eingefügt werden müssen und jeder neue Eintrag den vorherigen ersetzt, benötigen Sie ein Makro oder VBA-Programm, um die Liste aus den C1-Einträgen zu erstellen.
Ausgehend von dem Punkt, an dem die gesuchten Zeichenfolgen über eine dieser Methoden in einer Liste in Spalte A stehen, würde Folgendes in Spalte B stehen. Angenommen, Ergebnis1 steht in B2. Die Formel in B2 wäre:
=IF(ISERROR(FIND(Sheet1!A2,A2)),"NO MATCH",IF(FIND(Sheet1!A2,A2)=1,A2,"NO MATCH"))
Kopieren Sie die Formel so oft Sie benötigen in Spalte B. Sie können Spalte B mit einer beliebig großen Anzahl von Einträgen vorbefüllen und diese bleiben leer, bis in der zugehörigen Zelle in Spalte A ein Wert vorhanden ist, der ein Ergebnis erzeugt.