Страницы: 1
RSS
Преобразовать дату в нужный формат, Преобразование даты
 
Здравствуйте!

Уважаемые специалисты Excel подскажите, пожалуйста, простому пользователю как можно преобразовать дату формата 1 января 2019  в  01.01.2019г.
В таблице данные формируются из вручную заданного "календаря", где ячейка 1 января 2019 формируется простенькой формулой =A2&" "&B2&" "&C2 . Но мне нужна

дата  формата  01.01.2019г.    Спасибо!

                1 января   2019   1 января 2019
Изменено: serg2019 - 22.02.2019 10:15:21
 
Стоит прикладывать примеры.
попробуйте ДАТА(ГОД();МЕСЯЦ();ДЕНЬ())
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
Хотелось бы, чтобы в столбце Е формировались даты формата 01.01.2019г.
 
Код
=--(A2&ЛЕВБ(ПОДСТАВИТЬ(B2;"ая";"ай");3)&C2)

Формат ячейки дата

Алексей М.
 
Код
=ДАТАЗНАЧ(A2&B2&C2)

к стати да, с окончаниями надо разбираться (пример в #4)

Изменено: Александр - 21.02.2019 10:48:17
В жизни нет ничего невозможного! Есть только недостаток знаний и умений.
 
АlехМ, огромное спасибо!  Работает безупречно.  
 
Здравствуйте!
Всё ж вынужден еще раз обратиться за помощью, так как только сейчас вернулся к решению предстоящей задачи и понял, что решение должно быть несколько шире, что мне необходимо.
Даты в столбце D являются на другом листе выпадающим списком, где пользователи её собственно выбирают. Затем, эта дата попадает в наряд (в шаблон Word документа), еще не только прописью, но  в сокращенном виде в определенных местах, т.е. название месяца в виде цифр: 01.01.2019.      

Мне необходимо все-таки преобразование даты прямо из столбца D, а не из трех столбцов, сводимых в один. Это потому, что надо будет преобразовывать именно выбранную при вводе данных пользователем дату.  
 
Нашел способ перевода месяца в цифру, но как бы это все объединить в дату?  Может, кто-нибудь поможет?

Для получения из текста номера месяца можно использовать функцию ПОИСКПОЗ. Для этого надо составить массив названий месяцев в порядке их следования, начиная с января. Если название месяца содержится в ячейке A1 то формула для получения номера месяца будет такой:
Код
=ПОИСКПОЗ(A1 ; {"январь" ; "февраль" ; "март" ; "апрель" ; "май" ; "июнь" ; "июль" ; "август" ; "сентябрь" ; "октябрь" ; "ноябрь" ; "декабрь"};0)

Но в ячейке A1 месяц может быть записан в определённом падеже и тогда ничего не найдётся.

Лучше сократить формулу и искать месяц по первым трём буквам, учитывая что слово май может быть записано как мая надо включить замену функцией подставить:
Код
=ПОИСКПОЗ( ПОДСТАВИТЬ( ПСТР(A1;1;3); "мая"; "май"); {"янв" ; "фев" ; "мар" ; "апр" ; "май" ; "июн" ; "июл" ; "авг" ; "сен" ; "окт" ; "ноя";"дек"} ; 0)

С учётом разных падежей слова "май" получится следующая формула преобразующая в число любой месяц в любом падеже, можно скопировать и пользоваться:
Код
=ПОИСКПОЗ( ПОДСТАВИТЬ( ПОДСТАВИТЬ( ПОДСТАВИТЬ( ПСТР(A1;1;3) ; "мая" ; "май") ; "мае" ; "май") ;"маю";"май"); {"янв" ; "фев" ; "мар" ; "апр" ; "май" ; "июн" ; "июл" ; "авг" ; "сен" ; "окт" ; "ноя";"дек"} ; 0)
 
если в лоб, то: =--(--LEFT(0&D2;3)&SUBSTITUTE(MID(D2;FIND(" ";D2)+1;3);"ая";"ай")&RIGHT(D2;4))
Соблюдение правил форума не освобождает от модераторского произвола
 
Получить номер месяца можно так
Код
=МЕСЯЦ(1&ЛЕВБ(ПОДСТАВИТЬ(A1;"ая";"ай");3))
формат ячейки общий
для любого падежа
Код
=МЕСЯЦ(1&ЕСЛИ(ДЛСТР(A1)=3;ЛЕВБ(A1;2)&"й";ЛЕВБ(A1;3)))
=ПРОСМОТР(13;МЕСЯЦ(1&ЛЕВБ(A1;{2;3})&{"й";""}))
=ПРОСМОТР(13;МЕСЯЦ(ЛЕВБ(A1;{2;3})&{"й0";0}))
Изменено: АlехМ - 22.02.2019 10:42:40
Алексей М.
 
Цитата
buchlotnik написал: если в лоб, то: =--(--LEFT(0&D2;3)&SUBSTITUTE(MID(D2;FIND(" ";D2)+1;3);"ая";"ай")&RIGHT(D2;4))
Спасибо, добрый и умный человек!  В лоб - самое оно. Всё работает так как надо. Всех Вам благ!
 
Формулу из сообщения №9 можно сократить убрав лишнее
Код
=--(ЛЕВСИМВ(D2;2)&ПОДСТАВИТЬ(ПСТР(D2;НАЙТИ(" ";D2);4);"ая";"ай")&ПРАВСИМВ(D2;4))
и использовать функции покороче
Код
=--(ЛЕВБ(D2;2)&ПОДСТАВИТЬ(ПСТР(D2;НАЙТИ(" ";D2);4);"ая";"ай")&ПРАВБ(D2;4))
PS. на ответ для сообщения №8 вы не ответили.
Алексей М.
 
OFF
Цитата
АlехМ написал:
использовать функции покороче
LEFT  короче LEFTB,  как и RIGHT короче RIGHTB -  потому я их и использую   ;)
Соблюдение правил форума не освобождает от модераторского произвола
 
У serg2019, русский Excel, это была информация для него.
Алексей М.
Страницы: 1
Наверх