Excel 2010: Wie verweise ich auf ein bestimmtes Feld mit einem definierten Spaltennamen und einer Zeilennummer?

548
tzvi

Ich verwende Excel 2010 und erstelle eine Arbeitsmappe, um Details zu Produkten in einem Geschäft (einschließlich Kategorie, Preis, Zubehör) zu definieren. Ich möchte auch Standardkategoriedetails definieren, die verwendet werden sollen, wenn die spezifischen Details eines Produkts leer bleiben.

Ich habe drei Blätter eingerichtet: Produkte, Kategorie-Standardwerte und Berechnet. Spalten sind die Produkt- / Kategoriedetails, und jeder Artikel / jede Kategorie hat eine eigene Zeile. Ich möchte auch benannte Spalten so oft wie möglich verwenden, um die Lesbarkeit zu verbessern. Ein Spaltenname, der mit P beginnt, ist das Produktdetail und einer, der mit D beginnt, stammt aus dem CategoryDefault-Blatt.

Die Felder in Calculated sehen ähnlich aus:

=IF(Products!G2="", INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)), Products!G2) 

Dabei ist DPRICE eine benannte Spalte für die Standardpreisberechnung, und DCAT ist der Kategoriename für das Blatt CategoryDefaults.

Die Formel bedeutet Folgendes: Wenn Produktnummer 2 Spalte G leer ist, suchen Sie den Wert von Spalte A Produkt 2 im Blatt CategoryDefault und geben Sie den DefaultPrice zurück. Sonst den angegebenen Preis zurückgeben.

Bisher funktioniert alles gut. Ich möchte noch einen Schritt weiter gehen: Im vorherigen Beispiel bezieht sich Products! G2 auf die Preisspalte für das Produkt in Zeile 2. Ich möchte die Formel lesbarer machen, indem ich die Spaltenbuchstabe 'G' durch einen Namen ersetzt Spaltenreferenz, nämlich "PPRICE". Ich würde dasselbe mit dem Verweis auf Produkte tun! A2, indem ich die Spalte 'PCAT' (die Kategorie, zu der das Produkt gehört) aufruft.

Die endgültige Formel würde ungefähr so ​​aussehen:

=IF(Products!PPRICE:2="", INDEX(DPRICE, MATCH(Products!PCAT:2, DCAT, 0)), Products!PPRICE:2) 

Ich kann das einfach nicht zum Laufen bringen. Ich habe "Apply Names ..." ohne Ergebnis und ohne jegliche Variation von Doppelpunkten und $ ausprobiert. Hat jemand das schon mal gemacht?

-1
Sie haben das Setup gut erklärt, aber es ist nicht klar, um welches Problem es sich handelt. Bekommen Sie nur Namen, um zu funktionieren (letzter Absatz), oder gibt es noch mehr Probleme? fixer1234 vor 10 Jahren 0
Das Problem wird im letzten Absatz beschrieben. Ich werde es zur Klarstellung bearbeiten. tzvi vor 10 Jahren 0

1 Antwort auf die Frage

0
tzvi

Ich habe festgestellt, dass INDEX(PPRICE, 2)der Wert der zweiten Zeile in der Spalte PPRICE zurückgegeben wird. Das gesamte Code-Snippet sieht folgendermaßen aus:

=IF(INDEX(PPRICE, 2)="", INDEX(DPRICE, MATCH(Products!A2, DCAT, 0)), INDEX(PPRICE, 2)) 

Es ist jedoch ein absoluter Wert und kein relativer Wert. Wenn Sie diese Formel in andere Zeilen einfügen, wird sie immer noch auf Zeile 2 verweisen. Dies ist daher für große Datensätze keine gute Idee.