Formulės iššūkis - konvertuoti Y / N į savaitės dienas - Dėlionė

Ilgametis skaitytojas praėjusią savaitę man atsiuntė įdomią problemą. Tikslas yra sukurti teksto eilutę, pvz., „MWF“, skirtą pirmadieniui, trečiadieniui, penktadieniui. Problema ta, kad darbo dienos įvedamos kaip „taip“ / „ne“ santrumpos, pvz., „NYNYNYN“, skirtos „MWF“.

Iššūkis

Kokia formulė „N“ ir „Y“ pavers darbo dienų santrumpomis, kaip parodyta aukščiau esančiame paveikslėlyje?

Darbaknygė pridedama žemiau. Paskelbkite savo atsakymą komentaruose.

Papildomi taškai už stilių ir eleganciją, tačiau darbiniai arkliukai taip pat yra puikūs :)

Prielaidos

  1. Visi įvestys yra 7 simbolių ir juose yra tik „Y“ arba „N“
  2. Dienos kartojamos nuo sekmadienio iki šeštadienio, SMTWTFS.
Atsakymas (spustelėkite, jei norite išplėsti)

Sprendimo variantai - spoileriai!

1 variantas - grubus jėgos sujungimas su MID funkcija, pridėtos eilutės pertraukos, kad būtų galima skaityti:

=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","")

Tai būtų tipiškas sprendimas ir puikiai parodo, kaip vyksta sujungimas. Pastaba: formulių juostoje galite laisvai naudoti eilučių pertraukas, kad formules būtų lengviau skaityti.

2 parinktis - TEXTJOIN ir MID funkcija:

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

Šis sprendimas naudoja masyvo konstantas, kad formulė būtų paprasčiausia.

Pastaba: Jon Wittwer žemiau esančiuose komentaruose paskelbė sudėtingesnę šios formulės versiją, sukdamas masyvo konstantą naudodamas ROW ir INDIRECT.

3 parinktis - TEXTJOIN, MID ir REPT:

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

* Šiek tiek * kompaktiškesnė versija, naudojant REPT, pasinaudojant tuo, kad MID kiekvienai reikšmei pateiks TRUE arba FALSE, o TRUE REPT viduje įvertins 1 arba 0

Įdomios straipsniai...