Excel 2010: Wie referenziere ich ein bestimmtes Feld mithilfe eines definierten Spaltennamens und einer Zeilennummer?

Excel 2010: Wie referenziere ich ein bestimmtes Feld mithilfe eines definierten Spaltennamens und einer Zeilennummer?

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

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

Die Felder in „Berechnet“ sehen ungefähr wie folgt aus:

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

Dabei ist DPRICE eine benannte Spalte für die Standardpreise und DCAT der Kategoriename für das Blatt „CategoryDefaults“.

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

Bisher funktioniert das 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 den Spaltenbuchstabenverweis „G“ durch einen benannten Spaltenverweis ersetze, nämlich „PPRICE“. Dasselbe würde ich mit dem Verweis auf Products!A2 machen, indem ich die Spalte „PCAT“ nenne (die Kategorie, zu der das Produkt gehört).

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 kriege das einfach nicht zum Laufen. Ich habe „Namen anwenden...“ ohne Ergebnis und jede Variation von Doppelpunkten und $ ohne Erfolg ausprobiert. Hat das schon mal jemand gemacht?

Antwort1

Ich habe herausgefunden, dass INDEX(PPRICE, 2)der Wert der zweiten Zeile in der Spalte PPRICE zurückgegeben wird. Der gesamte Codeausschnitt sieht folgendermaßen aus:

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

Allerdings handelt es sich dabei um einen absoluten Wert und nicht um einen relativen Wert, und wenn Sie diese Formel kopieren und in andere Zeilen einfügen, verweist sie noch immer auf Zeile 2. Dies wäre daher bei großen Datensätzen keine gute Idee.

verwandte Informationen