Excel 2010: Erstellen Sie einen benannten Bereich ohne eine Blattreferenz in der Formel

2172
mechengr02

In Name Manager habe ich einen benannten Bereich mit dieser Referenz erstellt:

=COUNTIF($A$4:A4, Tbl_InventoryMain[Barcode]) 

Excel fügt automatisch den aktuellen Blattnamen vor dem ein $A$4:A4. Ich brauche das, um einfach zu bleiben $A$4:A4, um dieselbe Referenz auf anderen Blättern zu verwenden. Ich möchte nicht für jedes Blatt einen benannten Bereich erstellen.

Wie kann ich diesen genannten Verweis auf einem Blatt erhalten?

Dies ist nur ein Teil einer langen Formel. Diese spezielle Gleichung wird in einem Array wiederholt. Ich versuche, die Größe der Formel zu reduzieren und die Berechnungen zu beschleunigen, indem ich die Teile der Gesamtformel im Namensmanager platziere.

3

1 Antwort auf die Frage

1
Twisty Impersonator

Meine Antwort konzentriert sich auf das Erstellen einer Referenz, $A$4:A4die auf allen Arbeitsblättern funktioniert, da dies der Teil der Referenz ist, dem Excel den unerwünschten Blattnamen voranstellt. (Ich gehe davon aus, dass Sie keine Probleme mit der Tabelle haben.)

Sie können dieses Problem mit der Funktion INDIRECT wie folgt lösen :

  1. Wählen Sie in einem beliebigen Arbeitsblatt eine Zelle aus A1
  2. Erstellen Sie einen benannten Bereich mit einer Referenz von:

    =INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE) 

Je nach Ihrer Frage ist die zweite Zelle in Ihrer Referenz $A$4:A4relativ und die Referenz dieses Namens ist entsprechend aufgebaut. Wenn Sie diesen Namen in einer Zelle verwenden A1, wird der Bereich zurückgegeben $A$4:A4. Wenn Sie auf den Namen verweisen, B1wird ein Bereich von korrekt zurückgegeben $A$4:B4.

Wie es funktioniert

Die erste Hälfte der Formel ist einfach. INDIRECT("$A$4")wird immer auf Zelle beziehen sich A4auf das aktuelle Arbeitsblatt.

Die zweite Hälfte ist etwas komplizierter. INDIRECT("R[3]C[0]",FALSE)bezieht sich auf "3 Zeilen in derselben Spalte, relativ zur aktuellen Zelle". Wenn Sie in einer Zelle sind, ist A1dies eine Zelle A4. Das Argument FALSE weist die INDIRECT-Funktion an, den Text als Referenz im R1C1-Stil anstelle der Standardreferenz im A1-Stil zu interpretieren.

Die abgeschlossene Formel

Ihre endgültige Namensreferenz sieht etwa so aus:

=COUNTIF(INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE), Tbl_InventoryMain[Barcode]) 
Werden die "Indirekte" die Arbeitsmappe nicht als flüchtige Funktion verlangsamen? mechengr02 vor 8 Jahren 0
Das hängt von einer Reihe von Faktoren ab, wie z. B. wie groß / komplex die Excel-Arbeitsmappe ist, wie schnell Ihre CPU ist usw. Da auf diese Frage keine für alle Fälle passende Antwort verfügbar ist, sollten Sie diese Lösung am besten ausprobieren Wenn es in Ihrer Umgebung funktioniert. Wenn nicht, müssen Sie möglicherweise auf die Verwendung von benannten Bereichen für diese bestimmte Anwendung verzichten. Twisty Impersonator vor 8 Jahren 0
Kann diese dynamische Syntax in einem Diagramm verwendet werden? Ich kann die Formel richtig funktionieren lassen, aber sobald ich versuche, sie in ein Diagramm zu setzen, bricht sie. zB = test.xlsm! C_Besuche Chris vor 5 Jahren 0
Das ist eine großartige Frage! Sie sollten es als neue Frage posten und ggf. auf diesen Beitrag für den Kontext verweisen. Twisty Impersonator vor 5 Jahren 0