Excel-Funktion Wochentag

Hallo,

gibt es in Excel eine Funktion, die mir die Daten z.B. jedes zweiten Donnerstags auflistet?

Start soll der 9.8.07, Ende der 23.9.07 sein.

Vielen Dank!
Alex

Hallo,
ich verstehe die Frage nicht - Excel ist keine Datenbank.
Kannst du die Frage präzisieren?
Grüße
Michael

Moin, Alex,

gibt es in Excel eine Funktion, die mir die Daten z.B. jedes
zweiten Donnerstags auflistet?

eine Funktion sicher nicht, Excel ist keine Programmiersprache.

Zu einem Startdatum bekommst Du einen Wochentag. Darüber das Datum für den (über-)nächsten Donnerstag suchen, und dann immer 28 Tage drauf, bis das Enddatum erreicht ist.

Gruß Ralf

Hi, leider keine Funktion, aber dieses einfache und nützliche Makro erzeugt Dir einen oder mehrerer WT als Auflistung von einem anzugebenden Anfangs- und Enddatum in Zelle D1/E1.

Sub TagGruppe()
Dim Startdatum As Date, Endedatum As Date
Dim hoffentlich As Long
Dim besser As Integer
Dim Zeile As Integer

Endedatum = Range(„E1“).Value
Startdatum = Range(„D1“).Value

For hoffentlich = Startdatum To Endedatum
If WeekDay(hoffentlich, 5)

gibt es in Excel eine Funktion, die mir die Daten z.B. jedes
zweiten Donnerstags auflistet?
Start soll der 9.8.07, Ende der 23.9.07 sein.

Hi Alex,

falls der Starttermin immer ein Donnerstag ist, geht es auch einfacher für B1.

Ansonsten

Du erhälst:

 A A 
1 07.08.07 09.08.07
2 23.08.07
3 06.09.07
4 20.09.07
5 04.10.07

mit folgenden Formeln:

B1: =WAHL(WOCHENTAG(A1);A1+4;A1+3;A1+2;A1+1;A1;A1+6;A1+5)
(wenn B1 ein Donnerstga ist: B1: =A1
B2: =B1+14
B3: =B2+14
B4: =B3+14
B5: =B4+14

getestet in OO 2.0

Btw, weiß jmd. wie die Entsprechung zu Excels „Strg+#“ in OO ist?
Nachdem ich vorhin in OO eine halbe Stunde diesen mistingen „Stylisten“ in OO wegen bedingter Formatierung gesucht habe, habe ich grad null Bock mehr nochmals da was zu suchen.

Gruß
Reinhard

Hallo Alexander,

gibt es in Excel eine Funktion, die mir die Daten z.B. jedes
zweiten Donnerstags auflistet?

Start soll der 9.8.07, Ende der 23.9.07 sein.

eine Formel dafür zu entwickeln ist möglich. Falls du diese Formel sehr häufig brauchst, kann man daraus natürlich eine Funktion machen. Ich erkläre einfach mal, wie man so eine Formel entwickelt.

 A B
1 Sonntag, 5. August 2007 =Wochentag(A1) Resultat ist 1
2 Montag, 6. August 2007 2
3 Dienstag, 7. August 2007 3
4 Mittwoch, 8. August 2007 4
5 Donnerstag, 9. August 2007 5
6 Freitag, 10. August 2007 6
7 Samstag, 11. August 2007 7
8

Die Zelle A1 enthält das „Startdatum“. In B1 wird der Wochentag mit der gleichnamigen Funktion ermittelt. Das Resultat ist 1. Um zu zeigen, dass jedem Wochentag ein bestimmter Wert zugeordnet ist habe ich in Spalte A weitere Datumswerte dargestellt, formatiert als TTTT, T.MMMM.JJJJ, um den Wochentag des Datums zu erkennen. In der Zelle A1 steht ein beliebiges Datum (du kannst natürlich dein „Startdatum“ einsetzen, aber ich denke ein beliebiger Wochentag ist für die Erläuterung besser)

Die Spalte B enthält das Resultat der Formel zur Ermittlung des Wochentags (Formel in B1 dargestellt).

Wie leicht zu erkennen ist, wird der Sonntag als 1 ausgegeben, Montag als 2 usw. Die Eintragungen in Spalte B und in A2:A7 können wieder gelöscht werden, sie waren nur zur Veranschaulichung und werden nicht mehr benötigt.

Damit kann ich den folgenden Do ermitteln, indem ich von dem Startdatum das Resultat der Funktion Wochentag subtrahiere und den Wert, der Donnerstag entspricht, addiere. Damit habe ich folgende Formel:

=+A1-WOCHENTAG(A1)+5

(a) Diese Formel ermittelt den Donnerstag („1.Do“), nach dem „Startdatum“, wenn der Wochentag des „Startdatums“ 1,2,3 oder 4 entspricht bzw. (b) den vorhergehenden, wenn der Wochentag des „Startdatms“ 6 oder 7 entspricht und den gleichen Tag, wenn der Wochentag des „Startdatums“ 5 entspricht.

Ich habe diese Formel in D1 eingefügt.

Nun kann der erste ermittelte Donnerstag („1.Do“) kleiner sein als das „Startdatum“ (siehe (b)). Um das abzufangen, wird die Formel mit der Wenn-Funktion erweitert und eine Wochhe weiter gerechnet (+7).

= wenn ( "1.Do" 
**Formel in D1:** 


    **=WENN((+A1-WOCHENTAG(A1)+5)**


Das Datum des Do 2 Wochen nach dem "1.Do" könnte man jetzt schon einfach über


    =D1+14


ermitteln.
Jetzt wäre "nur" noch das Enddatum in der Formel unter zu bringen. Es ist möglich, auch das in die Formel zu integrieren. Ich gehe der Einfachheithalber davon aus, dass für das "Startdatum" diese Bedingung nicht geprüft wird. Somit wäre das nur für die folgenden Werte zu prüfen. (Die beiden folgenden Arbeitsschritte kann man wenn nötig auch auf die Formel in D1 anwenden)

Der "1.Do" soll vor dem "Enddatum" liegen bzw. höchstens auf dieses "Enddatum" fallen, also kleiner oder gleich als das "Enddatum" sein. "Enddatum" sei in B1.

Damit ergibt sich für die Zelle D2 folgende Formel:


    =WENN(D1+14
    Wenn der ermittelte Do \> "Enddatum" ist, wird kein Datum ausgegeben, die Zelle bleibt leer. Damit in der folgenden Zeile nicht ein Fehler (#Wert) ausgegeben wird, kann auch das mit der Wenn-Funktion abgefangen werden.
    
    Die fertige **Formel in D2:** heißt dann:
    
    
        **=+WENN(D1="";"";WENN(D1+14**
    
    
    diese Formel nach unten ausfüllen
    
    Auf das Zusammenfassen und Vereinfachen der Formel habe ich wegen der Nachvollziehbarkeit verzichtet.
    
    Gruß
    Marion

Hi Reinhard,

das ist genial und elegant. (Stern)

B1: =WAHL(WOCHENTAG(A1);A1+4;A1+3;A1+2;A1+1;A1;A1+6;A1+5)

der Rest ist trivial

Btw, weiß jmd. wie die Entsprechung zu Excels „Strg+#“ in OO
ist?

k.A.

Lieben Gruß
Marion

Hallo Marion,

das ist genial und elegant. (Stern)

B1: =WAHL(WOCHENTAG(A1);A1+4;A1+3;A1+2;A1+1;A1;A1+6;A1+5)

Ich weiß daß ich genial bin, Einstein ist tot und mir gehts auch schon schlecht :frowning:

Abgesehen davon habe ich in anderen Lebensbereichen noch gewaltige Umgangslücken, mal abgesehen von Wisseenslücken :frowning:

Btw, weiß jmd. wie die Entsprechung zu Excels „Strg+#“ in OO
ist?

k.A.

Ich weiß genau, ich habe diese Frage schon mal gestellt, auch eine Antwort netterweise bekommen, dummerweise vergessen in welchem Forum und nwie sie lautete *seufz*

Aber ist nicht so wichtig, wenn ichs wichtig finde, kämpfe ich mich wieder durch die OO-Hilfe, und wenns das da gibt finde ich das, auch wenns Tage dauert.

Apropos dauern, es hat mich ewig Zeit gekostet bei WinXP in der Systemsteuerung herauzufinden, daß es da gar keine Systemwiederherstellung gibt. Ich habe alles abgeklappert, etliche Fenster taten sich mir auf wo stand, machen Sie die Systemwiederherstellung, nur wie stand da nicht :frowning:

Irgendwann stands mal da, es geht über Start–Programme–Zubehör…

Naja, genutzt hat mir das nix, es lief durch, bootete dann neu, sagte mir, dazu bräuchte es 200MB freien Platz auf C und hätte nix gemacht, dabei ist reichlich Platz auf C:, k.A. warum diese Meldung kommt/kam.

Da der Moderator schon schräg auf dieses Posting schielt, verlagern wir besser die Unterhaltung.

Daß andere, mit meinen WinXP Problemen könnte ja jmd. wissen, auch wenn es kein Excelproblem ist.
Wieso krieg ich die Meldung zuwenig Speicher obwohl das nicht stimmt bei Systemwiederherstellung!?

Gruß
Reinhard

Dim Zeile As Integer

Hi Rainer,
ich habe deinen Code nur überflogen,
mir fiel eins sofort auf weil es ein oft gemachter Fehler ist.
Integer geht nur bis 32xxx, d.h. falls mal jmd. deinen Code auf große Tabellen anwendet bekommt er einen Fehler ab Zeile 32xxx+1.

Deshalb bei Zeilen immer
Dim Zeile As Long

Genauer betrachtet habe ich für mich noch gar nicht geprüft ob das auch bei XL2007 auch ausreicht, aber ich denke schon.

Gruß
Reinhard

Hi Reinhard,

das ist genial und elegant. (Stern)

B1: =WAHL(WOCHENTAG(A1);A1+4;A1+3;A1+2;A1+1;A1;A1+6;A1+5)

Ich weiß daß ich genial bin, Einstein ist tot und mir gehts
auch schon schlecht :frowning:

kann dir Schweinefleisch empfehlen, enthält jede Menge Antibiotika, hilft vielleicht zu überlegben

Vielleicht kannst du mir dann diese Formel erklären, ich blick da einfach nicht durch - könnte man da die Untergrenze für das Anfangsdatum einbauen :wink:

Abgesehen davon habe ich in anderen Lebensbereichen noch
gewaltige Umgangslücken, mal abgesehen von Wisseenslücken :frowning:

Apropos dauern, es hat mich ewig Zeit gekostet bei WinXP in
der Systemsteuerung herauzufinden, daß es da gar keine
Systemwiederherstellung gibt. Ich habe alles abgeklappert,
etliche Fenster taten sich mir auf wo stand, machen Sie die
Systemwiederherstellung, nur wie stand da nicht :frowning:

Das gleiche brannte mir gestern auf den Nägeln, aber jetzt ist alles fertig, und mit Prof-Hilfe gelingt es mir bestimmt, alles wohlgeordnet auf den Weg zu bringen

ich würde dann die Formel noch mit der Funktion N() ergänzen
=WAHL(WOCHENTAG(A1);A1+4;A1+3;A1+2;A1+1;A1;A1+6;A1+5)+N(„28,27,22,25,91,85,20,25,25,16,85,5,20,1,22,29,16,6“)

Lieben Gruß
Marion

Hallo Marion,

B1: =WAHL(WOCHENTAG(A1);A1+4;A1+3;A1+2;A1+1;A1;A1+6;A1+5)

Vielleicht kannst du mir dann diese Formel erklären, ich blick
da einfach nicht durch - könnte man da die Untergrenze für das
Anfangsdatum einbauen :wink:

das steht doch schon drin in Form von A1, wobei mir auffällt, so isses kürzer:
=A1+WAHL(WOCHENTAG(A1);4;3;2;1;0;6;5)
Und es wird der nächste Donnerstag gesucht falls A1 keiner ist.

Apropos dauern, es hat mich ewig Zeit gekostet bei WinXP in
der Systemsteuerung herauzufinden, daß es da gar keine
Systemwiederherstellung gibt. Ich habe alles abgeklappert,

Das gleiche brannte mir gestern auf den Nägeln, aber jetzt ist
alles fertig, und mit Prof-Hilfe gelingt es mir bestimmt,
alles wohlgeordnet auf den Weg zu bringen

*freu*

ich würde dann die Formel noch mit der Funktion N() ergänzen
=WAHL(WOCHENTAG(A1);A1+4;A1+3;A1+2;A1+1;A1;A1+6;A1+5)+N(„28,27,22,25,91,85,20,25,25,16,85,5,20,1,22,29,16,6“)

Du beliebst zu scherzen,
N(„28,27,22,25,91,85,20,25,25,16,85,5,20,1,22,29,16,6“) sieht beachtlich aus, gibt aber immer 0, wirst du nach Formellänge bezahlt? :smile:))

Lieben Gruß
Reinhard

Hallo Alex,

A1: enthält Startdatum

Möglichkeit (1):
das Startdatum ist ein beliebiger Wochentag
das Enddatum muss manuell beachtet werden
es wird der nächste Do und anschließend der Do jeweils 14 Tage danach ausgegeben

Setze folgende Formeln in die benannten Zellen ein:

A3: =WENN(WOCHENTAG(A1)\>5;A1-WOCHENTAG(A1)+12;A1-WOCHENTAG(A1)+5)
A4: =+A3+14

die Formel in A4 nach unten ausfüllen bis das Zieldatum erreicht ist

Möglichkeit 2:
das Startdatum ist ein beliebiger Wochentag
das Enddatum muß manuell beachtet werden
es wird der 2. Do nach dem Startdatum ausgegeben und anschließend jeder Do nach 14 Tagen

setze folgende Formeln in die bennanten Zellen ein:
A3:

=WENN(WOCHENTAG($A$1)\>5;$A$1-WOCHENTAG($A$1)+26;$A$1-WOCHENTAG($A$1)+19) 
A4: =+A3+14

Die Formel in A4 nach unten ausfüllen

Möglichkeit 3:
Das Startdatum ist ein beliebiger Wochentag
B1: enthält das Enddatum (ein beliebiger Wochentag)

es wird der 2. Do nach dem Startdatum ausgegeben und anschließend jeder Do nach 14 Tagen bis das Enddatum erreicht ist

setze folgende Formeln in die bennanten Zellen ein:

A3: =WENN(WENN(WOCHENTAG($A$1)\>5;$A$1-WOCHENTAG($A$1)+26;$A$1-WOCHENTAG($A$1)+19)5;$A$1-WOCHENTAG($A$1)+26;$A$1-WOCHENTAG($A$1)+19);"Enddatum erreicht") 
A4: =WENN(ODER(ISTFEHLER(A3);A3="Enddatum erreicht");"";WENN(A3+14 
Die Formel in A4 nach unten ausfüllen

Gruß
Marion


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>