2016-08-05 29 views
0

In B2 I Text haben innerhalb zu suchen, in C2 Ich habe diese Formel für Wörter auf einem Arbeitsblatt zu suchen, „keywords“ genannt gegen übereinstimmen.Excel-Formel nur erste Wert in der Spalte auf einem anderen Arbeitsblatt mit

{= 
IF(B2="","", 
IF(ISNUMBER(SEARCH(keywords!$B$2:$B$5,B2)),"Fruit", 
IF(ISNUMBER(SEARCH(keywords!$C$2:$C$5,B2)),"Nature", 
IF(ISNUMBER(SEARCH(keywords!$D$2:$D$5,B2)),"Vehicle", 
"no match")))) 

Die Formel wird unter Verwendung von nur den ersten Schlüsselwort in B2, C2, D2 auf dem Arbeitsblatt keywords, und nicht durch B5, C5, D5. Was ist die richtige Formel?

Ich verstehe das Ergebnis wird die letzte zufrieden Aussage sein, wenn mehr als eine Übereinstimmung gefunden wird. Bitte helfen Sie!

formula

keywords

+0

Datei ist hier https://www.dropbox.com/s/3rspwnetpgttko2/keywords_lookup_test.xlsx?dl=0 –

+0

Meinst du, den Bereich bei B3 zu starten ?? Natürlich wird B2 mit B2 übereinstimmen. –

+0

Hlookup? Ist das die Funktion, nach der Sie suchen? – Andreas

Antwort

2

Für eine nicht CSE Array Verwendung SUMPRODUCT:

= 
IF(B2="","", 
IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!B$2:B$5,$B2))*1)>0,"Fruit", 
IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!C$2:C$5,$B2))*1)>0,"Nature", 
IF(SUMPRODUCT(ISNUMBER(SEARCH(keywords!D$2:D$5,$B2))*1)>0,"Vehicle", 
"no match")))) 

Für eine etwas kürzere Formel, verwendet die Titelzeile auf dem Schlüsselwörtern Blatt als den Rückgabewert, also keine Notwendigkeit, die Werte hart zu kodieren. Verwenden Sie diese Option:

=INDEX(keywords!$B$1:$D$1,AGGREGATE(15,6,(COLUMN(keywords!$B$2:$D$5)-COLUMN(keywords!$B$2)+1)/(ISNUMBER(SEARCH(keywords!$B$2:$D$5,B2))),1)) 

Die Bereiche erweitert werden können, um weitere Zeilen oder Spalten in der Zukunft zu ermöglichen, ohne die Notwendigkeit von mehr IF-Anweisungen hinzufügen.

enter image description here

+0

Scott, das ist praktisch so nicht verschieben/Kontrollausschusses/Enter –

+0

@ElGavino wenn Sie mag das, meine bearbeiten sehen. Ich habe eine zweite Formel, die auf einmal in dem gesamten Bereich sieht und gibt die Titelzeile anstelle einem hartcodiert Wort. –

+0

danke für die kürzere Version, obwohl, wenn die Reichweite auf das Schlüsselwort geändert, nur C und D enthalten Ich bekomme eine #NUM! Fehler bei der Verwendung dieser = INDEX (Schlüsselwörter! $ C $ 1: $ D $ 1, AGGREGATE (15,6, (SPALTE (Schlüsselwörter! $ C $ 2: $ D $ 6) -COLUMN (Schlüsselwörter! $ C $ 2) +1)/(ISNUMBER (SUCHE (Schlüsselwörter!$ C $ 2: $ D $ 6, B3))), 1)) –

0

Versuchen:

{ = 
IF(B2="","", 
IF(MAX(IFERROR(SEARCH(keywords!$B$2:$B$5,B2),0))>0,"Fruit", 
IF(MAX(IFERROR(SEARCH(keywords!$C$2:$C$5,B2),0))>0,"Nature", 
IF(MAX(IFERROR(SEARCH(keywords!$D$2:$D$5,B2),0))>0,"Vehicle", 
"no match")))) } 
+0

Tim, das funktioniert! Vielen Dank! Funktioniert besser als erwartet, da es die erste Übereinstimmung aus der ersten Schlüsselwortspalte und nicht die letzte zufriedene Anweisung zurückgibt. –

0

Das Problem ist, dass die Suche in Ihrer Formel ein für einen einzelnen Wert sucht deshalb innerhalb einer bestimmten Textzeichenfolge zu suchen, wenn Sie den Bereich $B$2:$B$5 es wählt den Wert in der ersten Zelle der Auswahl Zellbereich.

Verwenden Sie stattdessen die SEARCH Funktion MATCH Funktion mit einem Match-Typ von 0 für und genaue Übereinstimmung. HINWEIS: Dies muss keine Matrixformel sein. Beispiel:

=IF(B2="","",IF(ISNUMBER(MATCH(B2,keywords!$B$2:$B$5,0)),"Fruit",IF(ISNUMBER(MATCH(B2,keywords!$C$2:$C$5,0)),"Nature",IF(ISNUMBER(MATCH(B2,keywords!$D$2:$D$5,0)),"Vehicle","no match"))))

Auch Ihre Aussage. „Ich verstehe das Ergebnis wird die letzte zufrieden Aussage sein, wenn mehr als eine Übereinstimmung gefunden wird, bitte helfen!“ du magst die erste, nicht die letzte, zufrieden sein; was wäre richtig.

+0

Danke für diese Version, obwohl nicht nützlich, wenn ich mehr als ein Wort in der Begriffspalte habe. –