Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Zwei Daten - Tage den Monaten zuordnen
#1
Guten Morgen liebe Community!  19

Eventuell gibt hier ja jemanden, der mir etwas auf die Sprünge helfen kann.

Mein Problem:

Ich habe zwei Datumsangaben und möchte mir die Tage pro Monat, für den gesamten Zeitraum ausgeben lassen.

Zum Beispiel habe ich als Datum den 12.01.2022 und den 24.03.2023.
Nun wäre es schön, wenn ich auf elegante Art & Weise eine Auflistung in folgender Form erhalt:

Januar 22 -> 19 Tage
Februar 22 -> 29 Tage
.
.
.
März 23 -> 24 Tage

Ich hoffe, dass mir jemand helfen kann  17
Euch allen einen guten Start in die neue Woche! (:
Antworten Top
#2
Hallo S...,

zB.

=MAX(0;MIN($B$2+1;D$1)-MAX($A$2+1;C$1))

siehe Datei.


Noch zwei Bemerkungen:

1. 2022 ist kein Schaltjahr

2. Dass der letzte Tag zum Bereich gehört ist häufig, Aber bisher kam nie vor, dass der erste Tag nicht zum Bereich gehörte.
Falls doch, siehe dritte Zeile. (Immer einer mehr als man denkt)


Angehängte Dateien
.xlsx   TageImMonat.xlsx (Größe: 9,04 KB / Downloads: 3)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#3
Hallo E...,

vielen Dank für deine super schnelle Antwort!

Das hilft mir schonmal enorm weiter!  :D

Ich bin ein ziemlicher Excel-Neuling und arbeite mich gerade erst in die Materie ein.

Daher eine weitere Frage:

Besteht die Möglichkeit, das ganze dynamisch mit Eingabefeldern zu gestalten, sodass die Möglichkeit besteht, nacheinander verschiedene Start- und Endatumsangaben einzutippen?

Ich würde mich super über Deine/Eure Hilfe freuen! (:
Antworten Top
#4
Hallo S...,

ups, da hatte ich zwei Dollar zuviel.

=MAX(0;MIN($B2+1;D$1)-MAX($A2;C$1))

jetzt has du mehr als eine Million Zeilen in denen du Zeitbereiche eintragen kannst. (In Excel kann man jede Zelle als Eingabefeld nutzen.)


Angehängte Dateien
.xlsx   TageImMonat.xlsx (Größe: 13,43 KB / Downloads: 7)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





[-] Folgende(r) 1 Nutzer sagt Danke an Ego für diesen Beitrag:
  • Sternenkrone
Antworten Top
#5
Hi,

für ein aktuelles Excel reicht auch eine Formel:

Code:
=LET(
a;A2;
b;B2;
c;DATEDIF(a;b;"M")+1;
d;SEQUENZ(;c;0);
e;DATUM(JAHR(a);MONAT(a)+d;1);
f;NACHSPALTE(e;LAMBDA(x;MAX(x;a)));
g;NACHSPALTE(f;LAMBDA(x;MIN(MONATSENDE(x;0);b)));
h;NETTOARBEITSTAGE.INTL(f;g;"0000000");
i;TEXT(e;"MMMM JJ");
k;VSTAPELN(i;h);
k)
a/b Start-/End-Datum
c Anzahl Monate
d als Sequenz
e alle Monate
f erster gültiger Tag im jeweiligen Monate (bei allen Monaten)
g letzter gültiger Tag im Monat
h Anzahl gültige Tage im Monat
i Monat als Text (z.B. "Januar 23")
k Monat und "Tage im Monat" als zwei übereinander gestapelte Zeilen

Diese Formel gibt zwei Zeilen aus. In der ersten stehen alle Monate des Zeitraums in der zweiten die zugehörigen Tage.


Oder falls einem NACHSPALTE() nicht gefällt geht auch
Code:
=LET(
a;A2;
b;B2;
c;DATEDIF(a;b;"M")+1;
d;SEQUENZ(;c;0);
e;DATUM(JAHR(a);MONAT(a)+d;1);
f;WENN(e>a;e;a);
ff;MONATSENDE(f;0);
g;WENN(ff<b;ff;b);
h;NETTOARBEITSTAGE.INTL(f;g;"0000000");
i;TEXT(e;"MMMM JJ");
k;VSTAPELN(i;h);
k)
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#6
Hi,

irgendwie habe ich gestern noch zu umständlich gedacht. In beiden Formeln kann man den NETTOARBEITSTAGE.INTL(...)-Teil durch g-f+1 ersetzen.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste