excel-suchen einer Zeichenkette in einer Tabelle und Rückgabe string wenn der Wert true
Spalte A enthält eine unterschiedliche text - rund 1000 Einträge, aber der gleiche text in verschiedenen Zellen.
In einem zweiten separaten Spalte (Spalte G) = a separate Tabelle, wird jede Zelle enthält eine Reihe von text-strings (jeder kann werden 2 bis 5 Zeichen lang). Rund 20 in allen.
Will ich suchen, den Anfang jeder Zelle in Spalte A für jede der Zeichenketten in der Spalte G und wenn einer vorhanden ist (sagen G3 ist der Inhalt) ich will G3 Inhalt gezeigt werden soll in Spalte B in der gleichen Zeile wie die übereinstimmenden Zelle von Spalte A.
Wird die Sache kompliziert, indem Sie den text abgestimmt werden, der sowohl ASC und SC und eine weitere single Person übereinstimmen, auf * (kann ich zwar ausschließen, * wenn das gibt ein einfacheres Ergebnis).
Beispiele
Spalte A enthält
ASC1 HHHH.........
ASC2 IIII.......
ASC2 AAAA.........
SC2 JJJJ....
VERSUCH LOCH........
TRIALHOLE......
OP1 MMMM ...
ASC1COMPLEX
KAN1
PS BAN
*TTC Jiokl jj
Spalte G
ASC1
ASC2
*
OP1
PS
SC2
TRIAL
ÜBERPRÜFEN Sie
Also Spalte B sollte zeigen,
ASC1
ASC2
ASC2
SC2
TRIAL
TRIAL
OP1
ASC1
0 (oder einige andere Fehler/weglassen-Wert)
PS
*
(Wie) kann dies getan werden? Ich habe versucht, die Anpassung verschiedener Lösungen aus dem internet und sind gescheitert.
Vielen Dank
DaveT
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt
G2:G20
enthält die such-strings - wenn Sie können Sie Liste in der Reihenfolge der Länge (kürzeste zuerst) so gegeben, Ihre sample-Werte würde die Liste anfangen mit*
PS
OP1
SC2
ASC1
ASC2
TRIAL
ÜBERPRÜFEN Sie
verwenden Sie dann diese Formel in B2 nach unten kopiert
=LOOKUP(2^15,FIND(G$2:G$20,A2),G$2:G$20)
G2:G20
sollte vollständig ausgefüllt oder passen Sie die Bandbreite verwendet, Die Anpassung ist groß- /Kleinschreibung #N/A zurückgegeben, wenn keine übereinstimmung vorhanden istWenn Sie zulassen wollen, die Lücken in G2:G20-diese version verwenden,
=LOOKUP(2^15,FIND(G$2:G$20,A2)/(G$2:G$20<>""),G$2:G$20)
=IF(ISERROR(LOOKUP(2^15,FIND($G$1:$G$5,A1),$G$1:$G$5)), "", LOOKUP(2^15,FIND($G$1:$G$5,A1),$G$1:$G$5))
=IFERROR(LOOKUP(2^15,FIND(G$2:G$20,A2),G$2:G$20),"no match")
=LOOKUP(2^15,FIND(G$2:G$9,A2),G$2:G$9)
....oder Sie können Leerzeichen in G2:G20, wenn Sie diese version verwenden=LOOKUP(2^15,FIND(G$2:G$20,A2)/(G$2:G$20<>""),G$2:G$20)
- werde ich update meine Antwort.....Funktioniert dies, wenn Sie ein Sternchen am Ende eines jeden string in Spalte G. Das Sternchen ist ein wildcard die erlaubt, die MATCH () - Funktion, um die Suche basierend auf den string plus eine beliebige Anzahl von Zeichen, die möglicherweise Folgen es.
Fügen Sie diesen in die Zelle B1.
Haben Sie zu wiederholen "&IF(ISNA(MATCH($G$5; A1, FALSE)), "", LEFT($G$5,SUCHEN Sie("*",$G$5,1)))" Anteil für jede Zelle in Spalte G, wo Sie eine Zeichenfolge, die Sie suchen möchten.
Dann kopieren Sie die Formel in B1 den ganzen Weg hinunter, durch einen Doppelklick auf das Fadenkreuz in der rechten unteren Ecke der Zelle.
Dies nicht, legen Sie nichts in die Zelle, wenn es nicht übereinstimmen. Es ist auch nicht case sensitive, aber ich werde die erste zugeben, dass, wenn die Daten in Großbuchstaben, wie es scheint, dann gehen Sie für die obige Antwort. Es ist einfacher.