Registriert seit: 13.04.2014
Version(en): 365
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.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Registriert seit: 29.09.2015
Version(en): 2030,5
Oder matixformel in A1:L31
Code:
=IF(MONTH(DATE(2022;COLUMN();ROW(1:31)))=COLUMN();DATE(2022;COLUMN();ROW(1:31));"")
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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))))
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
06.11.2022, 12:13
(Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2022, 12:15 von LCohen.)
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.
Registriert seit: 12.10.2014
Version(en): 365 Insider (64 Bit)
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))))
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 29.09.2015
Version(en): 2030,5
06.11.2022, 14:22
(Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2022, 14:23 von snb.)
oder
PHP-Code:
=IFERROR(DATE(2022;COLUMN(A:L);ROW(1:31))/(MONTH(DATE(2022;COLUMN(A:L);ROW(1:31)))=COLUMN(A:L));"")
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
06.11.2022, 15:08
(Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2022, 15:08 von LCohen.)
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));"")
Registriert seit: 29.09.2015
Version(en): 2030,5
oder matrixformel:
PHP-Code:
=IFERROR(--("2022/"&COLUMN(A:L)&"/" &ROW(1:31));"")
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
06.11.2022, 16:00
(Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2022, 16:02 von LCohen.)
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 ;)
Registriert seit: 29.09.2015
Version(en): 2030,5
06.11.2022, 16:47
(Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2022, 16:59 von snb.)
@LC
Wozu ?
-REST(SPALTE(A:L)&"-2022";7)Reicht auch:
PHP-Code:
=IFERROR(--(ROW(1:31)& "/" &COLUMN(A:L));"")