Clever-Excel-Forum

Normale Version: Dynamischer Ausdruck (xl365)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Exkurs

Bei dem Bezug auf =A1# kann man nicht wissen, ob alternativ

Einzelzelle
Zeilenvektor
Spaltenvektor
Matrix

zurückgegeben wird.

Exkurs Ende
_____________________________________________
Dynamischer Formelausdruck, beschränkt auf eine Richtung (hier Zeile):

A2: =INDEX({1.2.3.4.5};) oder einfach auch ={1.2.3.4.5}
A3: =INDEX({1.2.5};)
A4: =INDEX({1.2.3.5};)

A6: =INDEX(A2:A4;2)#
gibt nun den Inhalt von A3:C3 dynamisch zurück. Hier ist "2" ausgewählt (also A3), könnte aber natürlich auch errechnet werden.

Der Vorteil ist, dass auch variabel lange "Datensätze" verarbeitet werden können, also erneut bei Bezug zurückgegeben werden können, ohne dass (manchmal lästige) Null-Zellen dabei sind. Makel dabei ist: Die Sätze 2 bis 4 sind nicht eingegeben, sondern bestehen aus Formeln. Sowas tut aber niemand.

Ändern wir die 3 Formeln in Werte (was bei variablen Satzlängen der fast ausschließliche Fall sein dürfte):

A2:E2: 1 2 3 4 5
A3:C3: 1 2 5
A4:D4: 1 2 3 5

A6: =LET(x;INDEX(2:4;2;);INDEX(x;1):INDEX(x;ANZAHL2(x))) 
gibt nun den Inhalt von A3:C3 dynamisch zurück (aber ohne Verwendung von #).

Mit =A6# kann man nun auch hier variabel weiter referenzieren.
BEREICH.VERSCHIEBEN kann nur aus Bezügen (nicht: Formeln) auswerten, da es darauf angewiesen ist, in Nachbarzellen zu gucken. Dynamisch dürfen sie aber sein:

=BEREICH.VERSCHIEBEN(A1#;1;)

Erstaunlicherweise klappt aber folgendes nicht:

=LET(x;SORTIEREN(A1:B7;{1.2});INDEX(x;2;1):INDEX(x;7;2))

sollte doch eigentlich in der Lage sein, aus dem Zwischenspeicher x die 6 hinteren von insg. 7 Zeilen zurückzugeben. Es kommt #WERT!

Der Einzelbezug (alternativ)

=LET(x;SORTIEREN(A1:B7;{1.2});INDEX(x;2;1))
=INDEX(SORTIEREN(A1:B7;{1.2});2;1)


klappt wiederum.

Die rote Formel kann man aber innerhalb von LAMBDA ermöglichen:

=test(SORTIEREN(A1:B7;{1.2}))
mit test bezSichAuf =LAMBDA(x;INDEX(x;SEQUENZ(6;;2);{1.2}))

Das mit dem LET-Bereich erstaunt daher etwas.