Примеры функций для работы с датами: год, месяц и день в excel. Excel месяц из даты прописью Как получить месяц из даты excel


Узнаем как написать дату и месяц прописью в Excel (в том числе в именительном и родительном падежах).

Приветствую всех, дорогие читатели блога сайт.

Подписывая какие-либо документы мы помимо собственного автографа очень часто вписываем туда и текущую дату в виде числа, месяца и года. При этом мы почти никогда там не встречаем месяц записанный в численном формате. Ведь, например, дата записанная как 12.11.2016 куда сложнее воспринимается и читается чем 12 ноября 2016 г.

Вот и в Excel иногда требуется указать дату в таком виде, поэтому давайте подробно разберемся какие у нас есть варианты реализации.

Запись с помощью настройки формата ячейки

В Excel существует достаточно большое количество форматов отображения даты.

Давайте запишем дату в произвольную ячейку и перейдем в ее формат (щелкаем по ячейке правой кнопкой мыши и выбираем Формат ячейки, или просто нажимаем сочетание клавиш Ctrl + 1).

В открывшемся окне нас интересует вкладка Число :

Среди форматов дат выбираем запись месяца прописью и получаем:

Можно выбрать запись как со звездочкой (символ «*»), так и без, при этом различие отображения будет заключаться в изменении вида записи при смене настроек времени и даты операционной системы.

Запись с помощью формул

Спасибо за внимание!
Если у вас остались вопросы по теме статьи - пишите в комментариях.

Excel предоставляет в распоряжение пользователя множество числовых форматов и функций. Однако встроенные средства, позволяющие написать дату и число прописью, в программе отсутствуют. Давайте попытаемся устранить эти недостатки.

Теперь приступим к реализации алгоритма, позволяющего написать прописью название дня недели из предыдущего примера. Введите в ячейку A3 формулу, созданную на основе логической функции "ЕСЛИ":

Если номер дня недели отвечает понедельнику (равен 2), то в этой ячейке появится текст Понедельник. Данное значение затем передается в ячейку A3 .

Заполните аналогичными формулами для других дней недели ячейки А5:А7 . А вот в ячейку А8 поместите следующую формулу:

=ЕСЛИ(А2=6;"Пятница";"Суббота")

Она не содержит ссылок на другие ячейки, поскольку мы уже перечислили все дни недели.

Алгоритм, реализованный при помощи этих формул, представлен на рис. 6.3.

Рис. 6.3. Алгоритм работы таблицы, формирующей название дня недели

Разработанная нами таблица располагается в диапазоне ячеек А1:А8 , ее входом является ячейка А1 , выходом - ячейка A3 . На рис. 6.4 показана таблица с формулами, а на рис. 6.5 - с числовыми значениями.

Воспользуемся методом вложения формул и минимизируем эту таблицу. На ее базе можно создать модуль, состоящий всего из двух ячеек. Ячейка А1 будет служить входом модуля, а ячейка А2 , в которой производятся вычисления, - выходом. Ячейка А2 должна содержать следующую формулу:

Рис. 6.4. Таблица, формирующая название дня недели (с формулами)

Рис. 6.5. Таблица, формирующая название дня недели (с числовыми значениями)

Данный модуль можно перемещать по рабочему листу и копировать в другие книги (файлы) и рабочие листы. Подкорректировав ссылку в формуле, вы можете изменить расположение ячеек входа и выхода: разместить их не в одной строке, а в одном столбце (рис. 6.6).

Рис. 6.6. Модули, формирующие название дня недели (с числовыми данными и формулами)

Каждая строчка — это отдельная сделка. Вам необходимо сделать отчет за месяц. Какое количество товаров было продано в каждом месяце. Есть разные способы решения данной задачи, но предположим, что у нас стоит задача вытащить из даты месяц, чтобы потом было легко просуммировать по ним данные.

Способ 1 . Получить месяц из даты с помощью функции МЕСЯЦ в Excel

Прописываем формулу:

МЕСЯЦ(A2)


Протягиваем формулу и получаем месяц из даты в виде цифры. 5 — это месяц май, 8 — это август и так далее.

Есть аналогичные функции: ГОД, МЕСЯЦ, НЕДЕЛЯ, ДЕНЬ, ЧАС, МИНУТЫ, СЕКУНДЫ, которые работают аналогичным способом. Например, если в нашем примере написать =ГОД(A2), то в результате получим 2013 и так далее

Иногда требуется получить месяц из даты в формате текста: "Январь, Февраль, Март... " в этом случае воспользуемся другой функцией.

Способ 2 . Получить месяц из даты с помощью функции ТЕКСТ в Excel

Синтаксис будет следующий

ТЕКСТ(значение, формат)

Значение это ссылка на ячейку с датой
Формат — для получения месяцев необходимо использовать заглавную букву «М». Причем от ее количества будет зависеть формат отображения (Первая буква месяца, Полное название месяца, короткое название, в виде двойной цифры и одной цифры)
Наглядно это можно посмотреть на скриншоте.

Модуль для написания даты прописью, который мы сейчас рассмотрим, может найти более широкое применение (в частности, он пригодится при составлении платежных поручений и накладных). Задача состоит в том, чтобы заставить Excel написать дату словами, например, дату 12.02.2002 представить в виде текста "от 12 февраля 2002 года".

Решить эту задачу можно следующим методом: сначала разбить дату на составляющие, день месяц и год (причем для месяца сформировать не его порядковый номер в году, а название), а после этого все компоненты соединить в текстовой строке.

Таблица, построенная на базе этого алгоритма, с формулами и числовым примером показана на рис. 6.7.

Ячейки таблицы выполняют следующие функции:

  • ячейка А1 - служит входом (содержит дату в формате Excel);
  • ячейка А2 - определяет номер дня месяца;
  • ячейка A3 - определяет номер месяца;
  • ячейка А4 - определяет год;
  • ячейки А5:А15 - обеспечивает написание названия месяца;
  • ячейка А16 - добавляет нуль перед номером дня месяца, если этот номер меньше или равен 9;
  • ячейка А17 - служит выходом (содержит дату прописью).

Рис. 6.7.

Итак, нам необходимо выделить в дате день, месяц и год (ячейки А2, A3 и А4). Для определения дня задействуем функцию ДЕНЬ, принадлежащую к категории Дата и время. Функция возвращает номер дня в месяце для даты, указанной в числовом формате. День возвращается как целое число из диапазона от 1 до 31. Синтаксис функции имеет следующий вид:

ДЕНЬ(дата_в_числовом_формате)

Поместите табличный курсор в ячейку А2 и вызовите панель функции ДЕНЬ (рис. 6.8). В поле Дата_как_число введите адрес ячейки А1. Вы должны получить в ячейке А2 формулу, которая определяет день месяца, указанный во введенной в ячейку А1 дате:

ДЕНЬ(А1)

Для определения года используем функцию ГОД, которая также принадлежит к категории Дата и время. Функция возвращает год, соответствующий аргументу дата_в_числовом_формате. Год определяется как целое число в интервале от 1900 до 9999. Синтаксис функции следующий:

ГОД(дата_в_числовом_формате)

Рис. 6.8.

Разместите табличный курсор в ячейке A3 и вызовите панель функции ГОД (рис. 6.9). В поле Дата_как_число введите адрес ячейки А1. Формула в ячейке A3 должна имеет такой вид:

ГОД(А1)

Таким образом, в этой ячейке будет содержаться номер года от рождества Христова в дате, указанной в ячейке А1.

Рис. 6.9.

ГОДТеперь приступим к формированию названия месяца. Для определения номера месяца воспользуемся функцией МЕСЯЦ, принадлежащей к категории Дата и время. Функция возвращает месяц, соответствующий аргументу дата_в_число-вом_формате. Месяц определяется как целое в интервале от 1 (январь) до 12 (декабрь). Синтаксис функции такой:

МЕСЯЦ(дата_в_числовом_формате)

Установите табличный курсор в ячейку А4 и вызовите панель функции МЕСЯЦ (рис. 6.10). В поле Дата_как_число введите адрес ячейки А1. Полученная формула должна иметь вид:

МЕСЯЦ(А1)

В данном случае функция МЕСЯЦ определяет, какой номер месяца указан в дате, находящейся в ячейке А1.

Рис. 6.10.

В области А5:А15 необходимо разместить формулы, построенные на базе логической функции ЕСЛИ. С их помощью реализуется алгоритм, который аналогичен алгоритму, использованному для определения названия дня недели. Однако теперь вместо номеров дней недели указаны номера месяцев в году. В ячейке А5 формируется название месяца в родительном падеже. Занесите в ячейку А5 следующую формулу:

В ячейках А6:А14 расположите аналогичные формулы для других месяцев, а в ячейку А15 введите несколько другую формулу:

Мы хотим, чтобы номер дня, если он меньше 10, был представлен с предшествующим нулем. Реализовать это можно с применением помещенной в ячейку А16 формулы

ЕСЛИ(А2

Если порядковый номер дня месяца меньше или равен 9, функция ЕСЛИ возвращает 0. В противном случае она выдает пустую строку, потому что между кавычками в третьем аргументе ничего не введено.

Результат формируется в ячейке А17 с использованием формулы

="от"&А16&А2&" "&А5&" "&АЗ&" года."

В этой формуле при помощи символов "&" производится конкатенация (соединение) текстовых строк и содержимого ячеек, в которых находятся определенные ранее элементы даты. Перед датой добавляется предлог "от" (это нужно, в частности, для платежного поручения). Далее следует адрес ячейки А16. Она предназначена для вставки предшествующего нуля перед датой в случае, когда номер дня меньше 10. Указание адреса ячейки А2 приводит к вставке дня месяца. Дальше следует пробел (" "), перед названием месяца. В ячейке А5 находится название месяца. После него опять надо вставить пробел (" "). Ячейка A3 содержит год. Предлог " от " в начале формулы можно удалить или заменить другим.

Для конкатенации элементов можно использовать не только символ "&". В Excel есть текстовая функция СЦЕПИТЬ. Для ее вызова также применяется мастер функций. Панель функции приведена на рис. 6.11. С помощью этой функции можно получить формулу, которая аналогична предыдущей, но более удобна для восприятия:

СЦЕПИТЬ("от";А16;А2;" ";А5;" ";АЗ;" года.")

Пользовательская функция «ДатаПрописью» предназначена для преобразования даты из числового формата Excel в полную текстовую форму. Интервал преобразуемых дат составляет с 2001 по 2099 год. Используется в шаблонах доверенностей, договоров, соглашений, решений, уставов и других документов, заполняющихся в программе Excel и предусматривающих наличие строки с датой прописью. Формат преобразования: 01.01.2001 - «Первого января две тысячи первого года».

Добавить функцию «ДатаПрописью» в рабочую книгу Excel можно двумя способами: импортировать готовый модуль с функцией или самостоятельно добавить программный код в имеющийся модуль, или создав для этого новый.

Импорт модуля с функцией в проект

Импорт готового модуля в книгу Excel - самый простой способ добавления функции «ДатаПрописью».

  • Скачайте .
  • Импортируйте модуль в рабочую книгу, следуя инструкциям из .

Если вы хотите, чтобы функция «ДатаПрописью» была доступна из всех рабочих книг на вашем компьютере, импортируйте скачанный модуль в .

Вставка кода в стандартный модуль

  • Создайте новый и откройте его (или откройте уже имеющийся).
  • Скопируйте и вставьте в открытый модуль код функции «ДатаПрописью», приведенный ниже.
"Преобразование даты из числового формата в текст с 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. Найти ее вы сможете в разделе «Определенные пользователем». В настройках вашей программы Excel должно быть .

Функцию «ДатаПрописью» в ячейки рабочего листа можно вписывать и вручную. Текст вводимой формулы будет зависеть от того, где расположен модуль с функцией:

  • в текущей рабочей книге - =ДатаПрописью()
  • в Личной книге макросов - =PERSONAL.XLSB!ДатаПрописью()

Если вы планируете книгу с функцией «ДатаПрописью» передавать на другой компьютер, модуль с ней должен быть в передаваемой книге.