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

Преглед садржаја

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

Изазов

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

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

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

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

  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 или нулу унутар РЕПТ.

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