Bei einem bestimmten Startdatum (sagen wir beispielsweise 11. Januar 2012) möchte ich in Excel automatisch eine Zeile mit einem Datumsbereich ausfüllen, der für die Tage dem folgenden Muster entspricht (zweimonatlicher Zahlungszeitraum).
1. 11th - 25th
2. 26th - 10th
Natürlich mit tatsächlichen Daten in jeder Zelle, einschließlich Monat und Jahr (nicht einfach die beiden oben genannten Werte wiederholen). Was ich suche, ist eine Möglichkeit, ein oder zwei bestimmte Datumsbereiche einzugeben, beispielsweise:
January 11th, 2012 - January 25th, 2012
January 26th, 2012 - February 10th, 2012
Und lassen Sie Excel automatisch viele weitere Zellen nach dem gleichen Muster ausfüllen:
January 11th, 2012 - January 25th, 2012
January 26th, 2012 - February 10th, 2012
February 11th, 2012 - February 25th, 2012
....
December 11th, 2012 - December 25th, 2012
Wie kann ich das machen?
Antwort1
Formatieren Sie Ihre Spalten in das von Ihnen bevorzugte Datumsformat. Geben Sie das Datum 11.01.2012 in Zelle A1 und das Datum 25.01.2012 in Zelle B2 ein. Kopieren Sie den folgenden Code in Zelle A2;
=DATE(YEAR(B1),MONTH(B1), DAY(B1)+1)
und kopiere dies in B2;
=IF(DAY(B1)=10, DATE(YEAR(B1), MONTH(B1), DAY(25)), DATE(YEAR(B1),MONTH(B1)+1, DAY(10)))
Markieren Sie A2 und B2, um sie so weit nach unten zu ziehen, wie Sie möchten.
Sollte so aussehen, wenn es fertig ist;
Antwort2
Hier ist eine Lösung mit einer einzelnen Zeile. Achtung, es handelt sich um eine riesige Formel, die eine separate Nachschlagetabelle erfordert.
Irgendwo in Ihrer Arbeitsmappe müssen Sie die folgende Tabelle erstellen:
0 January
1 February
2 March
3 April
4 May
5 June
6 July
7 August
8 September
9 October
10 November
11 December
In meinem Beispiel befindet sich diese Tabelle bei I1:J12, also passen Sie Ihre Formel entsprechend an. Geben Sie in A1 ein:
=VLOOKUP(MOD(ROUNDDOWN((ROW()-0.5)/2,0),12),$I$1:$J$12,2,FALSE) & IF(ISODD(ROW())," 11th, "," 26th, ") & 2012 + INT((ROW()-0.5)/24) & " - " & VLOOKUP(MOD(ROUNDDOWN(ROW()/2,0),12),$I$1:$J$12,2, FALSE) & IF(ISODD(ROW())," 25th, "," 10th, ") & 2012 + INT(ROW()/24)
Zur Vereinfachung finden Sie hier die nach Teilen aufgeschlüsselte Formel:
=VLOOKUP(MOD(ROUNDDOWN((ROW()-0.5)/2,0),12),$I$1:$J$12,2,FALSE) &
IF(ISODD(ROW())," 11th, "," 26th, ") &
2012 + INT((ROW()-0.5)/24) &
" - " &
VLOOKUP(MOD(ROUNDDOWN(ROW()/2,0),12),$I$1:$J$12,2, FALSE) &
IF(ISODD(ROW())," 25th, "," 10th, ") &
2012 + INT(ROW()/24)
Antwort3
Keine Formelmethode
Geben Sie einA1:
11/1/2012
Geben Sie einA2:11/2/2012
MarkierenA1:A2, nach unten ausfüllen (durch Ziehen mit der Maus), beispielsweise bisA12(11/12/2012
)Geben Sie einA13:
26/1/2012
Geben Sie einA14:26/2/2012
MarkierenA13:A14, nach unten ausfüllen (durch Ziehen mit der Maus), beispielsweise bisB24(26/12/2012
)Spalte sortierenADies wäre das Startdatum der Periode
(a) Wiederholen Sie dies für die SpalteBDies wäre das Enddatum des Zeitraums (jeden 25. und 10.)
ODER
(b) Setzen Sie das nächste Startdatum - 1 als Enddatum, d.h. geben Sie inB1:=A2-1
, dann nach unten kopieren nachB2:B23Spalte formatierenA:Bnach Wunsch im Zellenformat (Strg-1), zum Beispiel
mmmm dd, yyyy
Bonus
So zeigen Sie das Start- und Enddatum in einer einzelnen, durch Bindestrich getrennten Zelle an:
Geben Sie einC1:
=TEXT(A1,"mmmm dd, yyyy") & " - " & TEXT(B1, "mmmm dd, yyyy")
Es würde Ihnen so etwas geben wieJanuary 11, 2012 - January 25, 2012
Kopieren nach untenC2:C24