Microsoft Excel

Das Portal zum Thema Excel-Formeln

Gruppe: Namen

Beitrag: Einem Namen ein variables Argument übergeben

Aufgabe
Man kann Namen keine Argumente / Parameter übergeben.
Mit einem kleinen Trick geht aber auch das.

Am Beispiel der Excel4-Macrofunktion AUSWERTEN():
Name: Berechnen
Bezieht sich auf: =AUSWERTEN(Tabelle1!A1)

Der Bezug / Parameter Tabelle1!A1 ist zunächst statisch. Das heißt, bei Namensdefinition wird definiert, auf welche Zelle sich der später in einer Zelle verwendete Namen bezieht (Dies kann entweder ein absoluter Bezug sein oder ein relativ zur aufrufenden Zelle versetzter Bezug).

Dies soll nun so flexibilisiert werden, dass der Bezug erst bei Verwendung des Namens in einer Zelle frei gewählt wird.
Lösung
Name definieren, Name: Berechnen
Bezieht sich auf:
=AUSWERTEN(INDIREKT(WECHSELN(TEIL(ZELLE.ZUORDNEN(6;INDIREKT("ZS";));19;99);")";)))

Der Name wird mittels folgender Syntax in der Tabelle angewandt:
=WAHL(1;Berechnen;Zellbezug)
Also z.B. für A15:
=WAHL(1;Berechnen;A15)

Steht in A15 der Formelstring 2*3+7, dann liefert die Formel das Ergebnis 13.

Selbstverständlich kann auch auf andere Tabellen Bezug genommen werden:
=WAHL(1;Berechnen;Tabelle3!C22)
berechnet den Formelstring in Tabelle3!C22.
Auch ein Bezug auf andere Mappen ist möglich. Allerdings müssen die Mappen geöffnet sein.

Erläuterung
Die Schreibweise =WAHL(1;Berechnen;Zellbezug) ist exakt einzuhalten, da bei der Namensberechnung die Formel selbst zunächst mit ZELLE.ZUORDNEN(6;INDIREKT("ZS";)) ausgelesen wird, um dann daraus mittels der Funktion TEIL den Parameter "Zellbezug" zu ermitteln (ab der 19. Position) und an die Funktionen INDIREKT und AUSWERTEN zu übergeben.