Узнаем как написать дату и месяц прописью в Excel (в том числе в именительном и родительном падежах).
Приветствую всех, дорогие читатели блога TutorExcel.Ru.
Подписывая какие-либо документы мы помимо собственного автографа очень часто вписываем туда и текущую дату в виде числа, месяца и года. При этом мы почти никогда там не встречаем месяц записанный в численном формате. Ведь, например, дата записанная как 12.11.2016 куда сложнее воспринимается и читается чем 12 ноября 2016 г.
Вот и в Excel иногда требуется указать дату в таком виде, поэтому давайте подробно разберемся какие у нас есть варианты реализации.
Запись с помощью настройки формата ячейки
В Excel существует достаточно большое количество форматов отображения даты.
Давайте запишем дату в произвольную ячейку и перейдем в ее формат (щелкаем по ячейке правой кнопкой мыши и выбираем Формат ячейки, или просто нажимаем сочетание клавиш Ctrl + 1).
В открывшемся окне нас интересует вкладка Число:
Среди форматов дат выбираем запись месяца прописью и получаем:
Можно выбрать запись как со звездочкой (символ «*»), так и без, при этом различие отображения будет заключаться в изменении вида записи при смене настроек времени и даты операционной системы.
Идем дальше и перейдем к формульному решению задачи.
Запись с помощью формул
Как мы уже разбирали в примере визуализации половозрастной пирамиды, формат любой ячейки записывается с помощью маски отображения. В случае с датой наиболее популярный вид записи (например, для 12.11.2016) выглядит как ДД.ММ.ГГГГ, где Д — день, М — месяц, Г — год.
Поэтому такого же результата мы сможем добиться воспользовавшись стандартной функцией ТЕКСТ (в английской версии TEXT), которая преобразует заданный текст в определяемый нами формат записи.
В качестве формата записи в данном случае указываем [$-FC19]Д ММММ ГГГГ г.;@, применяем функцию для даты и получаем:
Чуть подробнее остановимся на формате.
В записи формата [$-FC19] как раз и отвечает за корректный формат отображения даты в родительном падеже (можете попробовать убрать [$-FC19] и посмотреть что получится).
Если же нужно отобразить месяц не на русском, а, например, на украинском языке, то используйте [$-FC22] (для белорусского [$-FC23]):
Ок, с полной записью даты и месяца разобрались, но что если нам нужен только месяц?
Как записать месяц прописью?
Как и в примере выше воспользуемся функцией ТЕКСТ. Формат «ММММ» даст нам полную запись месяца (в именительном падеже):
Ещё одним способом является совместное применение функций МЕСЯЦ (в английской версии MONTH) и ВЫБОР (английский вариант CHOOSE).
Месяц вернёт нам порядковый номер месяца указанной даты (от 1 до 12), а ВЫБОР сопоставит числовому значению текстовое (где 1 — январь, 2 — февраль, …, 12 — декабрь):
Если же мы пишем число с месяцем и годом, то зачастую месяц нужно указать в родительном падеже (а не в именительном как в примере выше), например, 2 февраля 2015 года или 14 августа 2012 года и т.п.
Здесь нам опять поможет формат [$-FC19]ММММ, который записывает месяц в дате в родительном падеже, отличие от предыдущего варианта записи только в том, что мы убрали из записи день и год:
Есть и альтернативный вариант. На помощь опять придут уже знакомые функции МЕСЯЦ и ВЫБОР, только тут вместо именительного падежа для месяцев прописываем родительный (меняем окончания):
На этом все. Выбирайте наиболее понравившийся и удобный для вас способ.
Скачать файл с примером.
Спасибо за внимание!
Если у вас остались вопросы по теме статьи — пишите в комментариях.
Удачи вам и до скорых встреч на страницах блога TutorExcel.Ru!
Поделиться с друзьями:
Поиск по сайту:
Пользовательская функция «ДатаПрописью» предназначена для преобразования даты из числового формата Excel в полную текстовую форму. Интервал преобразуемых дат составляет с 2001 по 2099 год. Используется в шаблонах доверенностей, договоров, соглашений, решений, уставов и других документов, заполняющихся в программе Excel и предусматривающих наличие строки с датой прописью. Формат преобразования: 01.01.2001 — «Первого января две тысячи первого года».
Добавить функцию «ДатаПрописью» в рабочую книгу Excel можно двумя способами: импортировать готовый модуль с функцией или самостоятельно добавить программный код в имеющийся модуль, или создав для этого новый.
Импорт готового модуля в книгу Excel — самый простой способ добавления функции «ДатаПрописью».
Если вы хотите, чтобы функция «ДатаПрописью» была доступна из всех рабочих книг на вашем компьютере, импортируйте скачанный модуль в Личную книгу макросов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
‘Преобразование даты из числового формата в текст с 2001 по 2099 год Public Function ДатаПрописью(md As Date) As String If (md < 36892) Or (md > 73050) Then ДатаПрописью = «Преобразуемая дата должна быть с 2001 по 2099 год!» Else Dim den As Byte, dg(1 To 4) As Byte, mes As Byte, god As Byte, _ mespr As String, dmgpr As String den = Day(md) mes = Month(md) god = (Year(md) Mod 100) dg(1) = god Mod 10 dg(2) = Fix(god / 10) dg(3) = den Mod 10 dg(4) = Fix(den / 10) Dim dgpr(1 To 4) As String, i1 As Byte For i1 = 1 To 4 If (i1 = 1) Or (i1 = 3) Then If dg(i1 + 1) = 1 Then dgpr(i1) = Choose(dg(i1) + 1, «десятого «, «одиннадцатого «, «двенадцатого «, _ «тринадцатого «, «четырнадцатого «, «пятнадцатого «, «шестнадцатого «, _ «семнадцатого «, «восемнадцатого «, «девятнадцатого «) Else dgpr(i1) = Choose(dg(i1) + 1, «», «первого «, «второго «, _ «третьего «, «четвертого «, «пятого «, «шестого «, _ «седьмого «, «восьмого «, «девятого «) End If ElseIf (i1 = 2) Or (i1 = 4) Then If dg(i1 — 1) = 0 Then dgpr(i1) = Choose(dg(i1) + 1, «», «», «двадцатого «, _ «тридцатого «, «сорокового «, «пятидесятого «, «шестидесятого «, _ «семидесятого «, «восьмидесятого «, «девяностого «) Else dgpr(i1) = Choose(dg(i1) + 1, «», «», «двадцать «, _ «тридцать «, «сорок «, «пятьдесят «, «шестьдесят «, _ «семьдесят «, «восемьдесят «, «девяносто «) End If End If Next mespr = Choose(mes, «января «, «февраля «, «марта «, «апреля «, «мая «, _ «июня «, «июля «, «августа «, «сентября «, «октября «, «ноября «, «декабря «) dmgpr = dgpr(4) & dgpr(3) & mespr & «две тысячи « & dgpr(2) & dgpr(1) & «года» ДатаПрописью = Replace(dmgpr, Left(dmgpr, 1), UCase(Left(dmgpr, 1)), 1, 1) End If End Function |
Если вы хотите, чтобы функция «ДатаПрописью» была доступна из всех рабочих книг на вашем компьютере, вставьте приведенный код в модуль, расположенный в Личной книге макросов.
Итак, если вы импортировали модуль или создали новый и вставили в него код, можете вызывать Мастер функций и работать с функцией «ДатаПрописью», как с любой другой, встроенной в Excel. Найти ее вы сможете в разделе «Определенные пользователем». В настройках вашей программы Excel должно быть разрешено выполнение макросов.
Функцию «ДатаПрописью» в ячейки рабочего листа можно вписывать и вручную. Текст вводимой формулы будет зависеть от того, где расположен модуль с функцией:
Если вы планируете книгу с функцией «ДатаПрописью» передавать на другой компьютер, модуль с ней должен быть в передаваемой книге.
MulTEx »
1 Май 2011 18917 просмотров
ПрописьДата
Данная функция является частью надстройки MulTEx
Дата и время прописью
Функция выводит в пропись дату, т.е. из даты "01.01.2009"
делает текст "первое января две тысячи девятого года"
. Зачем это может быть нужно? Например, когда необходимо записать в шапке(ну или где там еще) отчета не просто дату(01.01.2009), а дату прописью(первое января две тысячи девятого года). Результат доступен на русском и английском языках.
Вызов команды через стандартный диалог:
Мастер функций—Категория «MulTEx»— ПрописьДата
Вызов с панели MulTEx:
Сумма/Поиск/Функции — Текстовые — ПрописьДата
Синтаксис:
=ПрописьДата(I10;1;0;»RUS»)
Дата(
I10
) — указывается дата, либо ссылка на ячейку с датой. Вместо ссылки на ячейку можно сразу указать дату
=ПрописьДата(09.01.2009;1;0;»RUS»)
Время(1) — необязательный аргумент. Если указан, либо присвоено значение 1 или ИСТИНА — помимо даты, в пропись также выводится значение времени(09.10.2009 18:12:05 — девятое октября две тысячи девятого года восемнадцать часов двенадцать минут пять секунд).
Если значение времени отсутствует в ячейке, либо равно нулю, то в пропись будет выведено нулевое значение (ноль часов ноль минут ноль секунд). Подписи дней, месяцев,часов и минут склоняются (Тридцатое мая, Первое сентября, Один час, Два часа)
ТолькоПодпись(0) — необязательный аргумент. Если указан, либо присвоено значение 1 или ИСТИНА — в пропись выводится только название месяца и дописывается пропись года (09 октября 2009 года)
Язык(«RUS») — необязательный аргумент. Если не указан или указано «RUS», то текст будет выведен на русском языке. Если указать «EN» («en»,»En» — регистр неважен), то текст будет выведен на английском языке. Если аргумент Время равен 1 или ИСТИНА, то время будет выведено в пропись на том же языке, что и дата.
Расскажи друзьям, если статья оказалась полезной:
Видеоинструкции по использованию надстройки MulTEx
Месяц из даты прописью |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Пользовательские функции (формулы, UDF) для написания даты прописью
(дата словами, время прописью), доступные при использовании надстройки FillDocuments
Инструкция, где в Excel найти эти функции, и как применить
Функция (формула) | Пример получаемого значения |
---|---|
=Пропись_Дата(B18) | Восьмое января две тысячи тринадцатого года |
=Пропись_Дата_сЧислами(B18) | 8 января 2013 года |
=Пропись_Время(B18) | восемь часов пятьдесят ноль минут сорок пять секунд |
=Пропись_Время_сЧислами(B18) | 8 часов 50 минут 45 секунд |
=Пропись_ДатаВремя(B18) | Восьмое января две тысячи тринадцатого года, восемь часов пятьдесят ноль минут сорок пять секунд |
=Пропись_ДатаВремя_сЧислами(B18) | 8 января 2013 года, 8 часов 50 минут 45 секунд |
Исходное значение в ячейке B18 | 08.01.2013 8:50 |