wake-up-neo.com

Nachschlagen mit INDEX und MATCH mit zwei Kriterien

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?

6
user1017882

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. 

SO18767439 example

In dem obigen Beispiel wird die Verkettung dessen, was nachgeschlagen werden soll (und nicht, wo nachgeschlagen werden soll) "on the fly" durchgeführt.

4
pnuts

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 ......

12
barry houdini

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>
0
Simon Nuss