Clever-Excel-Forum

Normale Version: Datenreihe automatsich fortsetzen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hi LCohen,

danke für die Infos und die Links. Ich habe mich vorhin schon mal bei Excelhero etwas schlau gemacht, allerdings habe ich in den 4Jahren, seit ich in Rente bin, kaum noch Anwendungsfälle für Excel gehabt. PQ und die neuen Funktionen sind fast spurlos an mir vorbeigegangen. Vielleicht finde ich ja noch was.
Oder matixformel in A1:L31

Code:
=IF(MONTH(DATE(2022;COLUMN();ROW(1:31)))=COLUMN();DATE(2022;COLUMN();ROW(1:31));"")
Moin snb!
Deine Idee aufgreifend und auf Excel 2021/365/Online adaptiert.
Jahr in A1
In A2:
=WENN(MONAT(DATUM(A1;SPALTE(A:L);ZEILE(1:31)))=SPALTE(A:L);DATUM(A1;SPALTE(A:L);ZEILE(1:31));"")
"gelettet" dann kürzer so:
=LET(j;DATUM(A1;SPALTE(A:L);ZEILE(1:31));WENN(MONAT(j)=SPALTE(A:L);j;""))
Spillt exakt wie das MATRIXERSTELLEN()
=MATRIXERSTELLEN(31;12;LAMBDA(t;m;LET(j;DATUM(A1;m;t);WENN(MONAT(j)>m;"";j))))

Thumps_up

Gruß Ralf
Hmmmm ... RPP63: Du machst Dir da aber eine Eigenschaft von snb zu eigen: Er nutzt kein dynExcel.

Wir sind uns doch eigentlich einig, dass eine saubere dynamische Lösung (LET u/o LAMBDA) jeden exogenen Parameter nur einmal verwendet und dann innerhalb der Formel in Gesamtheit oder Teilen als Variable verwendet. Das heißt, dass wir Formeln mit deren Mehrfachverwendung eigentlich nicht als kürzer ansehen wollen ;) Eine weitere Eigenschaft: Die Funktion sollte positionsunabhängig sein.

Keine Frage: Im täglichen Leben umgeht man dieses "nur einmal verwendet"-Gebot natürlich, weil es sich in konkreten Fragestellungen einfach nicht lohnt.
Natürlich sind wir uns einig!
Ich wollte übrigens auch noch SPALTE(A:L), was ja gleichbedeutend mit SEQUENZ(;12) ist, noch mittels m parametrisieren.
(aber da war die Bearbeitungszeit abgelaufen)
Ändert aber ja nichts daran, dass sein Ansatz interessant ist und eben auch auf Excel 2021 dynamisch nutzbar ist.
Deshalb habe ich ihn aufgegriffen.
Hier jetzt noch mal gegenübergestellt:
=LET(m;SEQUENZ(;12);j;DATUM(A1;m;SEQUENZ(31));WENN(MONAT(j)=m;j;""))
=MATRIXERSTELLEN(31;12;LAMBDA(t;m;LET(j;DATUM(A1;m;t);WENN(MONAT(j)>m;"";j))))
oder

PHP-Code:
=IFERROR(DATE(2022;COLUMN(A:L);ROW(1:31))/(MONTH(DATE(2022;COLUMN(A:L);ROW(1:31)))=COLUMN(A:L));""
snb erweitert auf 37 Zeilen (Wochentags-Zeilenidentität):

=WENNFEHLER((
DATUM(2022;SPALTE(A:L);ZEILE(1:37))-REST(
DATUM(2022;SPALTE(A:L);1);7))/(MONAT(
DATUM(2022;SPALTE(A:L);ZEILE(1:37))-REST(
DATUM(2022;SPALTE(A:L);1);7))=SPALTE(A:L));"") 


=LET(s;SPALTE(A:L);d;DATUM(2022;s;ZEILE(1:37))-REST(DATUM(2022;s;1);7);WENNFEHLER((d)/(MONAT(d)=s);""))

=IFERROR((
DATE(2022;COLUMN(A:L);ROW(1:37))-MOD(
DATE(2022;COLUMN(A:L);1);7))/(MONTH(
DATE(2022;COLUMN(A:L);ROW(1:37))-MOD(
DATE(2022;COLUMN(A:L);1);7))=COLUMN(A:L));"")
oder matrixformel:

PHP-Code:
=IFERROR(--("2022/"&COLUMN(A:L)&"/" &ROW(1:31));""
IFERROR jetzt korrekt, snb. In #16 war es überflüssig, IF reichte.

=WENNFEHLER(--("2022/"&SPALTE(A:L)&"/"&ZEILE(1:37)-REST(SPALTE(A:L)&"-2022";7));"")

Gut, dass ich meinen Ein-Formel-Kalender noch nicht upgedatet habe ;)
@LC

Wozu ?

-REST(SPALTE(A:L)&"-2022";7)

Reicht auch:

PHP-Code:
=IFERROR(--(ROW(1:31)& "/" &COLUMN(A:L));""
Seiten: 1 2 3