%2C%20))%20funktioniert%20mit%20Bereichen%2C%20aber%20nicht%20mit%20als%20TABELLE%20formatierten%20Daten.png)
Die Einrichtung:
Ich habe zwei Excel-Tabellen mit Daten, beide „als Tabelle(n) formatiert“. Eine ist ein großer Datensatz mit vielen Zeilen und Spalten (Feldern) und die andere ist eine Art „Wörterbuch“ mit nur 2 Zeilen und 2 Spalten (Feldern).
Tabelle 1 (Datensatz)
+----------------------------------------------------+
| month | week | productName | price | sold pcs. |
+---------------------------------------------------+|
| jan | 1 | heavy | (formula) | 25 |
| jan | 2 | heavy | (formula) | 51 |
| jan | 3 | heavy | (formula) | 06 |
| jan | 4 | heavy | (formula) | 00 |
| jan | 1 | light | (formula) | 39 |
| jan | 2 | light | (formula) | 11 |
| jan | 3 | light | (formula) | 98 |
Tabelle 2 (Wörterbuch)
+---------------------+
| productName | price |
+---------------------+
| heavy | 125 |
| light | 65 |
Was ich tun muss:
Was ich tun muss, ist, die Werte (Produktpreise) aus dem Wörterbuch in den großen Datensatz, wo bestimmte Werte (Produktnamen) übereinstimmen.
Was ich versucht habe:
=INDEX(Table2[@price], MATCH(Table1[@productName], Table2[@productName], 0))
Beim Arbeiten mit Bereichen funktioniert diese Kombination hervorragend. Wenn ich es jedoch so mache, mit als Tabellen formatierten Daten, stimmt es nur in der ersten Zeile von Tabelle1 überein.
Dies ist das Ergebnis, das ich erhalte:
+-------------------------------------------------+
| month | week | productName | price | sold pcs. |
+-------------------------------------------------+
| jan | 1 | heavy | 125 | 25 |
| jan | 2 | heavy | #N/A | 51 |
| jan | 3 | heavy | #VALUE | 06 |
| jan | 4 | heavy | #VALUE | 00 |
| jan | 1 | light | #VALUE | 39 |
| jan | 2 | light | #VALUE | 11 |
| jan | 3 | light | #VALUE | 98 |
Die erste Zeile stimmt richtig überein, die zweite Zeile (wieder dieselbe wie die erste) wird nicht gefunden und ab da beginnen die Fehlerwerte. Was soll ich tun?
Danke
Antwort1
Sie missbrauchen die benannten Bereiche:
Table2[@productName]
zeigt auf ein einzelnes Element in der TabelleTable2[productName]
zeigt auf die ganze SpalteTable2
zeigt auf alle Spalten und Zeilen der Tabelle, ausgenommen Überschriften
Mit SVERWEIS geht das ganz einfach:
=INDEX(Table2,MATCH([@productName],Table2[productName],0),MATCH("price",Table2[#Headers],0))
Alternativlösungen:
=VLOOKUP([@productName],Table2,2,0)
=VLOOKUP([@productName],Table2,MATCH("price",Table2[#Headers]),0)
Oder, vorausgesetzt, jeder Produktname ist eindeutig, können Sie SUMIF verwenden:
=SUMIF(Table2[productName],[@productName],Table2[price])
Antwort2
Das sollte für Sie funktionieren:
=INDEX(Table2[[#All],[Price]],MATCH([@productName],Table2[[#All],[ProductName]],0),1)
Hinweis: Durch die Verwendung von #ALL wird die gesamte Spalte ausgewählt, nicht nur eine ZEILE.