BS/W/O - abwechselnd
#1
Hallo an alle Fans von Excel,

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 ]

Vielen Dank (erarbeitet in Excel Office 2019)
Antworten Top
#2
Hi,

zeig mal Deine Tabelle mit einer Musterlösung.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
Hallo,

versuche es mal so:

Tabelle1

ABCDE
3Mo. 01.01.2024BS2BS
4Di. 02.01.2024W3W
5Mi. 03.01.2024BS4BS
6Do. 04.01.2024O5O
7Fr. 05.01.2024W6W
8Sa. 06.01.2024O7O
9So. 07.01.2024W8W
10Mo. 08.01.2024BS9BS
11Di. 09.01.2024O10O
12Mi. 10.01.2024BS11BS
13Do. 11.01.2024W12W
14Fr. 12.01.2024O13O
15Sa. 13.01.2024W0W
16So. 14.01.2024O1O
17Mo. 15.01.2024BS
18Di. 16.01.2024W
19Mi. 17.01.2024BS
20Do. 18.01.2024O
21Fr. 19.01.2024W
22Sa. 20.01.2024O
23So. 21.01.2024W
24Mo. 22.01.2024BS
25Di. 23.01.2024O
26Mi. 24.01.2024BS
Formeln der Tabelle
ZelleFormel
B3=SVERWEIS(REST(A3;14);D$3:E$16;2;FALSCH)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Die Formel aus B3 kannst du für jedes Datum verwenden, sie zeigt immer das richtige Kürzel an.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Wattwaidwurm
Antworten Top
#4
Hallo W...,

hier ein Vorschlag ohne Hilfstabelle:

=WENN(ODER(WOCHENTAG(A3;2)=1;WOCHENTAG(A3;2)=3);"BS";WENN(REST(ISOKALENDERWOCHE(A3);2)=1;WENN(ODER(WOCHENTAG(A3;2)=2;REST(WOCHENTAG(A3;2);2)=1);"W";"O");WENN(ODER(WOCHENTAG(A3;2)=2;REST(WOCHENTAG(A3;2);2)=1);"O";"W")))
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:
  • Wattwaidwurm
Antworten Top
#5
Hi,

oder so:

Code:
=WENNS(ODER(REST(A2;7)={2.4});"BS";REST(A2;7)=3;WAHL(REST(ISOKALENDERWOCHE(A2);2)+1;"O";"W");REST(A2-1;7)>=0;WAHL(REST(A2;2)+1;"W";"O"))


in A2 ein Datum vom Montag.
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Wattwaidwurm
Antworten Top
#6
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:
  • Wattwaidwurm, Charly CNX
Antworten Top
#7
Hallo,

noch eine VBA-Variante:

Code:
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:
  • Wattwaidwurm
Antworten Top
#8
B1#: =WECHSELN(TEIL(WIEDERHOLEN("BWBOWOWBOBWOWO";28);SEQUENZ(366);1);"B";"BS")

Mit dem Parameter "Anfang" in SEQUENZ (mittels REST(;7) oder REST(;14) erzeugt) synchronisiert man dies mit den Wochentagen.

Lässt sich mit ZEILE statt Frequenz sowie {}-Formel auch vor XL2021 lösen.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  • Wattwaidwurm
Antworten Top
#9
Hallöchen,

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)
[-] Folgende(r) 2 Nutzer sagen Danke an schauan für diesen Beitrag:
  • Wattwaidwurm, Charly CNX
Antworten Top
#10
Hallo

Oder eine andere Alternative wie ich es verstanden habe mit PQ.


Angehängte Dateien
.xlsx   Buchstaben abwechselnd.xlsx (Größe: 21,49 KB / Downloads: 7)
Viele Grüße
PIVPQ
[-] Folgende(r) 1 Nutzer sagt Danke an PIVPQ für diesen Beitrag:
  • Wattwaidwurm
Antworten Top


Gehe zu:


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