Formel-Herausforderung - Konvertieren Sie J / N in Wochentage Puzzle

Ein langjähriger Leser hat mir letzte Woche ein interessantes Problem geschickt. Das Ziel ist es, eine Textzeichenfolge wie "MWF" für Montag, Mittwoch, Freitag zu erhalten. Das Problem ist, dass die Wochentage als Ja / Nein-Abkürzungen wie "NYNYNYN" für "MWF" eingegeben werden.

Herausforderung

Welche Formel übersetzt die "N" und "Y" in Abkürzungen für Wochentage, wie im obigen Screenshot gezeigt?

Die Arbeitsmappe ist unten angehängt. Veröffentlichen Sie Ihre Antwort in den Kommentaren.

Extrapunkte für Stil und Eleganz, aber auch Lösungen für Arbeitspferde sind in Ordnung :)

Annahmen

  1. Alle Eingaben bestehen aus 7 Zeichen und enthalten nur "Y" oder "N".
  2. Die Tage werden von Sonntag bis Samstag (SMTWTFS) abgebildet.
Antwort (zum Vergrößern anklicken)

Lösungsmöglichkeiten - Spoiler!

Option 1 - Brute-Force-Verkettung mit der MID-Funktion, Zeilenumbrüche zur besseren Lesbarkeit hinzugefügt:

=IF(MID(B5,1,1)="Y","S","")& IF(MID(B5,2,1)="Y","M","")& IF(MID(B5,3,1)="Y","T","")& IF(MID(B5,4,1)="Y","W","")& IF(MID(B5,5,1)="Y","T","")& IF(MID(B5,6,1)="Y","F","")& IF(MID(B5,7,1)="Y","S","")

Dies wäre eine typische Lösung und zeigt deutlich, wie Verkettung funktioniert. Hinweis: Sie können Zeilenumbrüche in der Formelleiste verwenden, um das Lesen von Formeln zu vereinfachen.

Option 2 - TEXTJOIN- und MID-Funktion:

=TEXTJOIN("",TRUE,IF(MID(B5,(1,2,3,4,5,6,7),1)="N","",("S","M","T","W","T","F","S")))

Diese Lösung verwendet Array-Konstanten, um die Formel erheblich zu vereinfachen.

Hinweis: Jon Wittwer hat in den Kommentaren unten eine komplexere Version dieser Formel veröffentlicht und die Array-Konstante mit ROW und INDIRECT hochgefahren.

Option 3 - TEXTJOIN, MID und REPT:

=TEXTJOIN("",1,REPT(("S","M","T","W","T","F","S"),MID(B5,(1,2,3,4,5,6,7),1)="Y"))

Eine * etwas * kompaktere Version mit REPT, die die Tatsache ausnutzt, dass MID für jeden Wert TRUE oder FALSE zurückgibt und TRUE innerhalb von REPT mit 1 oder Null bewertet wird.

Interessante Beiträge...