ich habe eine etwas knifflige Aufgabe. Doch ich kann sie nicht richtig lösen. Weis jemand eine Lösung in einer Formel?
Es handelt sich um Einträge in einer Spalte in der Woche, neben den Wochentagen vom 01.01. - 31.12. durchgehend.
Jeden MONTAG und MITTWOCH soll "BS" in der Spalte erscheinen. "W" und "O" sollen sich an den Tagen abwechseln. Eigentlich kein Problem.
Das schwierige ist aber, das der DIENSTAG (also der Tag zwischen den "BS" Einträgen) sich von Woche zu Woche abwechseln soll, aber dennoch "O" und "W" im Verlauf der Wochen sich immer abwechseln sollen.
Beispiel als Text: [ BS / W / BS / O / W / O / W / BS / O / BS / W / O / W / O / BS / W / BS / O / W / O / W / BS / O / BS ]
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:1 Nutzer sagt Danke an Ego für diesen Beitrag 28 • Wattwaidwurm
Hallo hätte auch noch einen Vorschlag: Wenn ich richtig gezählt habe wiederholt sich die Reihe nach 14 Zellen
Die Formel beginnt mit dem ersten Zeichen am Datum in A1 Die Formel soll an einem Montag beginnen was für den 1.1.2024 auch passt. 1.1.2024 steht in A1 =WAHL(REST(A1-$A$1;14)+1;"BS";"W";"BS";"O";"W";"O";"W";"BS";"O";"BS";"W";"O";"W";"O")
Folgende(r) 2 Nutzer sagen Danke an echo für diesen Beitrag:2 Nutzer sagen Danke an echo für diesen Beitrag 28 • Wattwaidwurm, Charly CNX
Sub T_1() For i = 1 To 365 If Weekday(Cells(i, 1), vbMonday) = 1 Then Cells(i, 2) = "BS" If Weekday(Cells(i, 1), vbMonday) = 3 Then Cells(i, 2) = "BS" If IsEmpty(Cells(i, 2)) Then Z = Z + 1 Cells(i, 2) = Choose((Z Mod 2) + 1, "O", "W") End If Cells(i, 3) = VBA.WeekdayName(Weekday(Cells(i, 1)), False, vbMonday) Next i End Sub
mfg
Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:1 Nutzer sagt Danke an Fennek für diesen Beitrag 28 • Wattwaidwurm
hier mal eine Variante mit Teil =TEIL("BWBOWOWBOBWOWO";REST((A2-$A$2);14)+1;1)
Wie auch LCohen nutze ich den Vorteil der Verwendung von "einstelligen" Kürzeln.
In A2 steht z.B. der 1.1. des Jahres, die Differenz zum jeweiligen Datum in Verbindung mit der REST-Funktion ergibt dann die Teil-Stelle mit dem zutreffenden Kürzel. Das wäre dann auch unabhängig von der ZEILE des Datums. Das Datum 1.1. passt vermutlich zufälligerweise dieses Jahr, weil das ein Montag war bzw. wenn Deine 14-tägige Einteilung an diesem Montag beginnt.
Ich würde übrigens ein für immer festes Startdatum irgendwo festlegen statt $A$2 und immer als Bezug nehmen, dann kannst Du den String jedes Jahr gleich nehmen. ... Falls Deine 14-tägige Einteilung schon eine Woche vor dem 1.1. beginnt, könntest Du auch dieses Datum - also den 25.12.2023 - als Startdatum festlegen und es passt ewig.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)