Функция ДАТАЗНАЧ() в MS EXCEL

Единственная задача функции ДАТАЗНАЧ(), английский вариант DATEVALUE(), - преобразовывать даты, которые хранятся в виде текста, в числа, которые соответствуют этим датам. Например, формула ДАТАЗНАЧ("11.09.2009") возвращает число 40067, соответствующее 11 сентября 2009 года. Но, функция ДАТАЗНАЧ() понимает только определенные форматы записи дат. Например, 2009-сент-11 она не поймет, а 11-сент-2009 - поймет.

Если на листе содержатся даты в текстовом формате, то их скорее всего не удастся правильно отфильтровать, отсортировать или отформатировать в виде дат без предварительного преобразования в числовую форму (см. статью Как EXCEL хранит дату и время).

Функция ДАТАЗНАЧ() предназначена для преобразования в формат дат.

Синтаксис функции ДАТАЗНАЧ()

ДАТАЗНАЧ(дата_как_текст)

Дата_как_текст. Текст, представляющий собой дату в формате даты EXCEL (об этом ниже), или ссылка на ячейку с таким текстом. Например, "11.9.2009" и "11-сент-2009" введенные (без кавычек) в ячейки в текстовом формате.

Если дата сохранена в формате, который EXCEL не понимает, например, "2012, март, 11", то функция вернет значение ошибки #ЗНАЧ!

Если в аргументе дата_как_текст опущен год, функция ДАТАЗНАЧ() использует текущий год по показаниям встроенных часов компьютера. Сведения о времени в аргументе дата_как_текст игнорируются.

Задача 1 Фильтрация и сортировка дат

Предположим, что столбце A установлен формат Текстовый и он содержит текстовые строки "22 сентябрь 2011"; "23 сентябрь 2011" и т.д. (без кавычек).

Постараемся отфильтровать значения, которые относятся к октябрю 2011 года.

Сначала попытаемся отфильтровать даты как есть, т.е. в формате текста.

Так как значения дат находятся в текстовом формате, то и Фильтр в столбце А будет содержать только критерии для текста.

Выбрав в Фильтре критерий Текстовые фильтры / Содержит... введите текст Октябрь и нажмите ОК. Будут отфильтрованы значения относящиеся к октябрю 2011 и 2012 годов (последняя строка).

Кроме того, если была допущена опечатка, то заметить, что отфильтровались не все значения будет очень трудно. Поэтому стоит перед фильтрацией преобразовать значения в текстовый формат. Для этого используем функцию ДАТАЗНАЧ(), записав в столбце В следующую формулу :

=ДАТАЗНАЧ(A6)

К столбцу В применим формат Краткая Дата и затем применим фильтр.

Как видно из рисунка выше, фильтр теперь будет содержать критерии удобные для отбора дат.

Аналогично Фильтрации работает и сортировка списка с датами. Сравните 2 сортировки выполненные для столбца А (даты в текстовом формате) и В (формат даты).

Задача 2 Вычисления с датами в текстовом формате

Для того, чтобы производить вычисления с датами функция ДАТАЗНАЧ() не нужна. Пусть в ячейке А1 хранится текстовое значение "11.9.2009". Например, чтобы прибавить к этой дате 2 дня, можно записать формулу

=ДАТАЗНАЧ(A1) +2

а можно и просто =А1+2, EXCEL сам произведет необходимые преобразования.

Форматы дат, которые функция ДАТАЗНАЧ() не понимает

Дату в текстовом формате можно записать разными способами, например "2/8/2009" или "2\8\2009" или "2001, сентября 11". Но функция ДАТАЗНАЧ() (и соответственно EXCEL) поймет далеко не все форматы, понятные человеку (функция первый пример поймет, а второй и третий не поймет). Сводная таблица форматов приведена на рисунке ниже и в файле примера (лист форматы).

Кроме того, EXCEL умеет преобразовывать далеко не все форматы дат (записанных в текстовой форме), которые предлагает сам. Например, если дату в ячейке ввести в формате EXCEL, который называется Длинный формат даты (предположим "22 сентября 2011 г."), и попытаться преобразовать его в дату с помощью функции ДАТАЗНАЧ(), то получим ошибку.

Альтернатива функции ДАТАЗНАЧ()

Функция ДАТАЗНАЧ() полезна если имеется длинный перечень дат (например, неудачно импортированных из MS WORD). Если дат в текстовом формате немного, то можно выделить ячейку с датой, нажать клавишу F2, затем ENTER.

Другой способ - прибавить к значению 0, т.е. формулы =ДАТАЗНАЧ(A1) и =А1+0 эквивалентны!

О преобразовании дат из текстового формата читайте в этой статье.

ДАТАЗНАЧ() vs ДАТА()

Если значение даты содержится в 3-х разных ячейках (в А1 содержится день, в А2 - месяц и А3 - год), то преобразовать это значение можно с помощью функций ДАТАЗНАЧ() и ДАТА():

=ДАТАЗНАЧ(A1 & "/" & A2 & "/" & A3)

=ДАТА(A3;A2;A1)

В случае, если месяц в ячейке А2 введен прописью, то функция ДАТА() не справится.

 

Связанные статьи

Похожие задачи
Прочитайте другие статьи, решающие похожие задачи в MS Excel. Это позволит Вам решать широкий класс подобных задач.
Средняя: 3 (4 оценок)
Яндекс.Метрика