Ich versuche mit INDEX und MATCH eine grundlegende Suche zu erreichen. Mein Layout ist:
Blatt 1 NAME | SITE | DATUM Blatt 2 NAME | SITE | DATUM
Ich möchte, dass die Spalte "SITE" in Blatt 1 automatisch mit der Site aus Blatt 2 aufgefüllt wird, wobei NAME und DATE übereinstimmen.
Was ich versucht habe
=INDEX('Sheet2'!B:B,MATCH(A1,'Sheet2'!A:A,0))
Dies wird erfolgreich mit NAME übereinstimmen, aber wie kann ich ein zusätzliches MATCH in die Formel integrieren, die auf beide NAME und DATE passt?
Ich schlage vor, dass die herkömmliche Lösung für Probleme dieser Art darin besteht, das Paar von Suchbegriffen (dh eine Helfer-Spalte) zu verketten und die verketteten Paare dem Nachschlag-Array hinzuzufügen.
In dem obigen Beispiel wird die Verkettung dessen, was nachgeschlagen werden soll (und nicht, wo nachgeschlagen werden soll) "on the fly" durchgeführt.
Sie können eine solche "Array-Formel" verwenden
=INDEX('Sheet2'!B:B,MATCH(1,(A1='Sheet2'!A:A)*(C1='Sheet2'!C:C),0))
CTRL+SHIFT+ENTER
.... oder Sie können eine weitere INDEX-Funktion hinzufügen, damit sie nicht "in ein Array eingegeben" werden muss, d. h.
=INDEX('Sheet2'!B:B,MATCH(1,INDEX((A1='Sheet2'!A:A)*(C1='Sheet2'!C:C),0),0))
oder eine andere Möglichkeit ist, LOOKUP wie folgt zu verwenden
=LOOKUP(2,1/(A1='Sheet2'!A:A)/(C1='Sheet2'!C:C),'Sheet2'!B:B)
Diese letztere Methode würde Ihnen die letzte Übereinstimmung geben, wenn es mehr als eine gibt ......
Hier ist die Lösung ohne Verwendung eines Arrays und ohne Verwendung einer Helper-Spalte:
<i>=INDEX(Table[returnColumnName],
MATCH(1, INDEX((Table[lookupColumn1] = "arraysAreSlow") *
(Table[lookupColumn2] = "avoidWherePossible"), 0, 1), 0))</i>
Hier ist eine fortgeschrittenere Lösung, die eine Rastersuche durchführt:
<i>=INDEX(Table,
MATCH(1, INDEX((Table[lookupColumn1] = "arraysAreSlow") *
(Table[lookupColumn2] = "avoidWherePossible"), 0, 1), 0),
MATCH("returnColumnName", Table[#Headers],0))</i>