перевод текста в дату. MS excel
Подскажите, пожалуйста, как перевести текст формата:
Февраль 2024 г. Январь 2024 г. Январь 2024 г. Март 2024 г.
в формат даты? день можно указать любой, например 1 число месяца.
Написал такой вот ужас :)) как упростить, есть идеи?
=DATE(RIGHT(SUBSTITUTE(H11," г.",""),4),IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Январь",1,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Февраль",2,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Март",3,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Апрель",4,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Май",5,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Июнь",6,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Июль",7,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Август",8,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Сентябрь",9,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Октябрь",10,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Ноябрь",11,IF(LEFT(SUBSTITUTE(H11," г.",""), FIND(" ", SUBSTITUTE(H11," г.",""))-1)="Декабрь",12,"ошибка")))))))))))),15)
Ответы (1 шт):
Год можно извлечь из правой части:
=ЛЕВБ(ПРАВБ(B2;7);4)
Но если справа в тексте будет не "г.", а "г" или "г. "? Надежнее:
=ПСТР(B2;ПОИСК(" ";B2)+1;4)
Преобразовать название месяца в число:
=ВПР(ЛЕВБ(B2;3);{"янв";1:"фев";2:"мар";3:"апр";4:"май";5:"июн";6:"июл";7:"авг";8:"сен";9:"окт";10:"ноя";11:"дек";12};2;)
Но интереснее:
=ПОИСК(ПСТР(B2;2;2);"/нвеварпрайюнюлвгенктояек")/2
В итоге:
=ДАТА(ПСТР(B2;ПОИСК(" ";B2)+1;4);ПОИСК(ПСТР(B2;2;2);"/нвеварпрайюнюлвгенктояек")/2;1)
ПСТР
- текстовая фукция, возвращает год в текстовом формате. Но это не проблема - функция ДАТА
все понимает )
Если в Google-таблицах - там ЛЕВБ
, ПРАВБ
не работают, заменить обычными.