Für VLOOKUP muss die Spalte ganz links durchsucht werden, damit dies nicht funktioniert. INDEX + MATCH funktioniert, aber MATCH kann nicht mehrere oder zweidimensionale Bereiche durchsuchen. Eine Problemumgehung besteht darin, mehrere MATCHes für die verschiedenen Bereiche zu kombinieren.
Das Ergebnis der Suche in E7 verwendet diese Formel:
=IFERROR(INDEX(A2:A5,IFERROR(MATCH(E8,D2:D5,0),0)+IFERROR(MATCH(E8,G2:G5,0),0)),"Invalid Sub_code")
Jede Spalte hat einen eigenen MATCH. Die Übereinstimmung wird nur in einer Spalte vorkommen. IFERROR gibt also Null zurück, wenn die Spalte keine Übereinstimmung hat. Durch das Hinzufügen der Übereinstimmungswerte wird ein Ortsindex für die Spalte mit der Übereinstimmung und Null für alle weiteren gesuchten Spalten kombiniert. Der Fragentitel sagt "zwei oder mehr Spalten". Dies kann durch Hinzufügen eines weiteren MATCH-Ausdrucks für jede weitere Spalte erweitert werden.
INDEX wird mit einem eigenen IFERROR umhüllt, falls ein falscher Subcode eingegeben wird. Bei MATCH wird nicht zwischen Groß- und Kleinschreibung unterschieden. Es wird also immer noch eine Übereinstimmung gefunden, wenn nur die Groß- und Kleinschreibung nicht gleich ist.
Natürlich können Sie mehrere Eingabezellen und entsprechende Ergebniszellen haben.
Alternative
@Rajesh S hat festgestellt, dass dies auch umstrukturiert werden kann:
=IFERROR(INDEX(A2:A5,MATCH(E8,D2:D5,0)),IFERROR(INDEX(A2:A5,MATCH(E8,G2:G5,0)),"Invalid Sub_code"))
Dabei wird jeder MATCH-Ausdruck mit INDEX verwendet. Der IFERROR auf dem INDEX kümmert sich auch um MATCH-Fehler. Die IFERRORS werden dann geschachtelt, sodass ein Fehler beim ersten Lookup beim zweiten Lookup auftritt und ein Fehler bei der fehlerhaften Warnung Sub_code. Es endet dieselbe Länge, da die Anzahl der INERX-Funktionen steigt, während die Anzahl der IFERROR-Funktionen abnimmt. Dies kann durch zusätzliche Verschachtelung für zusätzliche Spalten vergrößert werden.
Verwenden Sie die Version, die am intuitivsten erscheint.
Um die Struktur und Logik zu vergleichen, werde ich die Formeln aufschlüsseln.
Alternative 1:
=IFERROR( INDEX(A2:A5, IFERROR( MATCH(E8,D2:D5,0) ,0) + IFERROR( MATCH(E8,G2:G5,0) ,0) ) ,"Invalid Sub_code")
Alternative 2:
=IFERROR( INDEX(A2:A5, MATCH(E8,D2:D5,0) ) ,IFERROR( INDEX(A2:A5, MATCH(E8,G2:G5,0) ) ,"Invalid Sub_code") )