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 bleiben.
Ich habe drei Arbeitsblätter eingerichtet: Produkte, CategoryDefaults 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 zur besseren Lesbarkeit verwenden. Ein Spaltenname, der mit P beginnt, ist das Produktdetail und einer, der mit D beginnt, stammt aus dem CategoryDefault-Blatt.
Die Felder in Berechnet sehen ungefähr so 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 lautet wie folgt: Wenn die Produktnummer 2 Spalte G leer ist, suchen Sie den Wert von Spalte A Produkt 2 im CategoryDefault-Blatt und geben Sie den DefaultPrice zurück. Anderenfalls geben Sie den definierten Preis zurück.
Soweit funktioniert das alles einwandfrei. Ich möchte noch einen Schritt weiter gehen: Im vorherigen Beispiel bezieht sich Produkte! G2 auf die Preisspalte für Produkt in Zeile 2. Ich möchte die Lesbarkeit der Formel verbessern, indem ich den Spaltenbuchstaben 'G' durch einen Namen ersetze Spaltenreferenz, nämlich 'PPRICE'. Ich würde dasselbe mit dem Verweis auf Produkte! A2 tun, indem ich die Spalte "PCAT" (die Kategorie, zu der das Produkt gehört) aufrufe.
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 jede Variation von Doppelpunkten und $ ohne Erfolg versucht. Hat das schon mal jemand gemacht?
Antworten:
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:Es ist jedoch ein absoluter Wert und kein relativer Wert. Wenn Sie diese Formel kopieren und in andere Zeilen einfügen, zeigt sie weiterhin auf Zeile 2. Dies ist daher keine gute Idee für große Datenmengen.
quelle