Изазов формуле - претвори И / Н у дане у недељи - Слагалица

Дугогодишњи читалац послао ми је занимљив проблем протекле недеље. Циљ је завршити текстуалним низом попут „МВФ“ за понедељак, среду, петак. Проблем је што се радни дани уносе као да / не скраћенице попут „НИНИНИН“ за „МВФ“.

Изазов

Која формула ће превести „Н“ и „И“ у скраћенице у радним данима, као што је приказано на снимку заслона изнад?

Радна свеска је у прилогу испод. Пошаљите свој одговор у коментаре.

Додатне поене за стил и елеганцију, али и решења за радне коње су у реду :)

Претпоставке

  1. Сви улази имају 7 знакова и садрже само „И“ или „Н“
  2. Дани се мапирају од недеље до суботе, СМТВТФС.
Одговор (кликните за проширење)

Опције решења - спојлери!

Опција # 1 - спајање грубе силе са функцијом МИД, додавање прелома линија ради читљивости:

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

Ово би било типично решење и лепо илуструје како спајање функционише. Напомена: можете слободно користити преломе редова унутар траке са формулама да бисте олакшали читање формула.

Опција 2 - ТЕКСТЈОИН и МИД функција:

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

Ово решење користи константе низа да би знатно поједноставило формулу.

Напомена: Јон Виттвер је објавио софистициранију верзију ове формуле у коментарима испод, окрећући константу низа користећи РОВ и ИНДИРЕЦТ.

Опција бр. 3 - ТЕКСТЈОИН, МИД и РЕПТ:

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

* Нешто * компактнија верзија која користи РЕПТ, искористивши чињеницу да ће МИД вратити ТРУЕ или ФАЛСЕ за сваку вредност, а ТРУЕ ће проценити на 1 или нулу унутар РЕПТ.

Занимљиви Чланци...