Suchen nach Textteilen in Excel 2013

Suchen nach Textteilen in Excel 2013

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.

verwandte Informationen