Excel функция обратная датазнач

Если в вашей ячейке лежит дата в виде текстовой строки, например, «8 март 2013», то для Excel это, естественно, не дата, а текст. Чтобы преобразовать текстовую дату в полноценную (читай – в числовой код даты, т.к. внутри Excel любая дата представлена именно числовым кодом), можно использовать специальную функцию ДАТАЗНАЧ (DATEVALUE). Она умеет превращать в нормальную дату различные текстовые варианты ее написания:

Превращение текстовой даты в полноценную с ДАТАЗНАЧ

Как видно из скриншота, проблемы с преобразованием будут только у англоязычных дат (если у вас установлен русский Excel), с падежами месяцев (ибо их нет в английском языке в принципе) и с совсем уж невнятными цифровыми наборами типа «18 3 17». Со всем остальным эта функция замечательно справляется.

Если для ввода дат была использована не точка или косая черта, а запятая (что часто бывает при использовании дополнительной цифровой клавиатуры), то придется сначала заменить запятую на точку с помощью функции ПОДСТАВИТЬ (SUBSTITUTE) и потом уже использовать функцию ДАТАЗНАЧ для преобразования получившегося текста в реальную дату:

Дата с запятыми

Ссылки по теме

  • Как Excel на самом деле хранит и обрабатывает даты и время
  • Как найти ближайший рабочий день функцией РАБДЕНЬ (WORKDAY)
  • Как вычислить разницу между двумя датами в днях, месяцах или годах


Единственная задача функции

ДАТАЗНАЧ()

, английский вариант 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» или «282009» или «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

введен прописью, то функция

ДАТА()

не справится.

Skip to content

Как преобразовать текст в дату в Excel или извлечь ее из сложной фразы?

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

Поскольку Excel — не единственное приложение, которое вы используете, иногда вы работаете с данными, импортированными из файла .csv или другого внешнего источника (1С, например). Когда это произойдет, скорее всего, даты будут вставлены в вашу таблицу в виде текстовых записей. Хотя они внешне выглядят как даты, Excel не распознает их как таковые.

И вот о чём мы поговорим:

  • Как отличить обычные даты Excel от «текстовых дат»
  • Форматирование в дату
  • Функция ДАТАЗНАЧ
  • Функция ЗНАЧЕН
  • Как математические операции преобразуют текст в дату
  • Как обойти нестандартные разделители
  • Как можно использовать мастер преобразования текста в столбцы
  • Как преобразовать текст в дату при помощи формул
  • Быстрая конвертация при помощи Специальной вставки
  • Исправление записей с двузначными годами
  • Как преобразовать 8-значное число в дату
  • Простой способ преобразования текста в дату без формул

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

Как отличить обычные даты Excel от «текстовых дат»

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

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

Даты Текстовые значения

• По умолчанию выравнивание по правому краю.
• Можно выбрать различные форматы даты и изменить вид.
• Если выбрано несколько дат, в строке состояния отображается «Среднее», «Количество» и «Сумма».

· • По умолчанию выравнивание по левому краю.
• По умолчанию установлен формат «Общий». При изменении формата вид не меняется.
• Если выбраны несколько ячеек, строка состояния показывает только «Количество».
• В строке формул может быть виден начальный апостроф.

Их можно легко распознать, немного расширив столбцы, выделив один из них, вы­брав команду Формат ► Ячейки ► Выравнивание (Format ► Cells ► Alignment) и для па­раметра По горизонтали (Horizontal) выбрав значение Общий (General) (это вид ячеек по умолчанию). Щелкните кнопку ОК и внимательно просмотрите на таблицу.

Если какие-либо значения не выровнены по правому краю, значит Excel не считает их датами.

Как можно использовать форматирование.

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

Как вы, наверное, знаете, Excel хранит дату и время как порядковые номера дней, и только форматирование ячейки заставляет число отображаться в виде день-месяц-год. Например, 1 января 1900 года сохраняется как номер 1, 2 января 1900 года сохраняется как 2, а 1 января 2015 года сохраняется как 42005. Дополнительные сведения о том, как Excel сохраняет дату и время, см. в статье Форматирование дат.

При вычислении дат в Excel результатом, возвращаемым различными функциями, часто является число, обозначающее дату. Например, если  СЕГОДНЯ()+10 возвращает вместо дня, который наступает через 10 после сегодняшнего,  число вроде 44294, это не означает, что формула неверна. Просто формат ячейки установлен на Общий или Текст, тогда как это должно быть Дата.

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

Чтобы применить нестандартный формат, отличный от формата по умолчанию, выберите ячейки с такими числами и нажмите комбинацию клавиш Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Число» выберите «Дата», укажите нужный формат даты в разделе «Тип» и нажмите «ОК».

Если вам нужно что-то более сложное, чем стандартные форматы даты, ознакомьтесь с информацией о том, как создать собственный формат даты в Excel.

Если какое-то упрямое число отказывается заменяться датой, проверьте, почему не работает формат даты — советы по устранению неполадок .

Когда возникает подобная проблема, скорее всего, вы захотите перевести эти текстовые значения в обычные даты Excel, чтобы вы могли ссылаться на них в формулах для выполнения различных вычислений. И, как это часто бывает в Экселе, есть несколько способов решения этой задачи.

Функция Excel ДАТАЗНАЧ — изменить текст на дату

Функция ДАТАЗНАЧ (DATEVALUE в английской версии) переделает «дату-как текст» в порядковый номер дня, который Excel распознает как дату.

Синтаксис ДАТАЗНАЧ очень прост:

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

Самое простое применение этой функции  =ДАТАЗНАЧ(A1), где A1 — это ячейка с датой, хранящейся в виде символьной строки.

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

На скриншоте представлено несколько формул ДАТАЗНАЧ в действии:

использование ДАТАЗНАЧ

На первый взгляд, результат работы может выглядеть для вас довольно неожиданным. Вы его видите на скриншоте в колонке С. Но пусть это вас не смущает: нужно просто применить нужное форматирование. Как видите, результат работы формулы – это порядковый номер дня начиная с 1900 года (столбец С). И если мы к нему применим правильный формат, то есть укажем программе, что это на самом деле не число, а день, то сразу же получим приемлемый результат (колонка D).

Итак, в столбце D показан результат из С, только уже как дата.

Как вы, наверное, знаете, Excel хранит датировки и время как порядковые номера, и только форматирование ячейки заставляет число отображаться в виде даты. В частности, 1 января 1900 года хранится как число 1, а 2 января 1900 года хранится как 2. Соответственно, 8 марта 2020 года хранится как 43898. Чтобы превратить такой серийный номер в дату, все, что вам нужно сделать — это изменить формат ячейки.

Для этого выберите клетку или диапазон ячеек с числами, которые вы хотите представить как даты, и нажмите комбинацию клавиш Ctrl + 1, чтобы открыть диалоговое окно «Формат ячеек». На вкладке «Числовые форматы» в пункте «Дата», выберите подходящий для вас внешний вид в разделе «Тип» и нажмите кнопку «ОК».

как установить нужный формат в ячейке

Обратите также внимание, что не с любым текстом можно провести подобную операцию. Если Эксель не может с ним справиться, то возвращает ошибку #ЗНАЧ! (см. метку 3 на рисунке выше)

Кроме того, если по какой-то причине у вас вместо точек использованы запятые, то при помощи функции ПОДСТАВИТЬ сразу замените их на точки – и всё будет в порядке.

Функция ДАТАЗНАЧ — что нужно запомнить?

При конвертации текстовой строки в дату имейте в виду, что:

  • Информация о времени в текстовых значениях игнорируется, как вы можете видеть в строках 2 и 6 на рисунке выше (1). Чтобы превратить такие значения, содержащие даты и время, используйте функцию ЗНАЧЕН.
  • Если в «текстовой дате» пропущен год, ДАТАЗНАЧ подставит текущий год из системного времени вашего компьютера, как показано в строке 3 выше (2).
  • Поскольку Microsoft Excel начинает свой отсчет времени только с 1 января 1900 года, использование ДАТАЗНАЧ с более ранним возрастом приведет к ошибке #ЗНАЧ!.
  • Любое значение, связанное со временем, хранится в Excel как число. Но ДАТАЗНАЧ не может превратить числовое значение в показатель времени и не может обработать текст, который выглядит как число. Для этого вам нужно будет использовать функцию ЗНАЧЕН. И это именно то, что мы собираемся обсудить далее.

Функция ЗНАЧЕН – как конвертировать текст в дату.

По сравнению с ДАТАЗНАЧ, функция ЗНАЧЕН более универсальна. Она может конвертировать любую строку, которая выглядит как дата или число, в настоящее число, которое затем вы можете легко вывести как дату.

Синтаксис здесь следующий:

=ЗНАЧЕН(текст)

Где текст – это строка или ссылка на ячейку, содержащую символы, которые вы хотите превратить в число.

Функция ЗНАЧЕН() может обрабатывать как дату, так и время. Последнее преобразуется в десятичную часть числа, как вы можете видеть в строке 11 на следующем скриншоте:

Как видите, результаты те же, что и в примере выше. Только ещё и время определено и обработано правильно.

Однако, к сожалению, такие данные, пригодные для обработки функцией ЗНАЧЕН(), встречаются на практике не слишком часто. Разработчики различного программного обеспечения стремятся проявить фантазию, записывая в свои отчеты дату и время операции. И когда эти отчеты мы хотим обработать в Excel, возникает множество проблем.

Остановимся на наиболее типичных из них и попробуем показать пути решения.

Математические операции для преобразования текста в дату

Помимо использования функций Excel, о которых мы говорили чуть выше, вы можете выполнить простую математическую операцию, чтобы заставить программу выполнить реорганизацию строки в дату. Обязательное условие: операция не должна изменять ее значение (порядковый номер дня). Звучит немного сложно? Следующие примеры помогут разобраться!

Предполагая, что ваши данные находятся в ячейке A1, вы можете использовать любую из следующих формул, а затем применить формат даты к ячейке:

  • Сложение: =A1 + 0
  • Умножение: =A1 * 1
  • Деление: =A1 / 1
  • Двойное отрицание: =—A1

Как вы можете убедиться, математические операции могут помочь с датами (строки 3,4.,5,7), временем (строки 2 и 6), а также числами, отформатированными как текст (строка 8). 

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

Как обойти нестандартные разделители

Если запись содержит какой-либо разделитель, отличный от косой черты (/) или тире (-), функции Excel не смогут распознать их как даты и вернут ошибку #ЗНАЧ!. Чаще всего такие «неправильные» разделители – это пробел и запятая.

Чтобы это исправить, вы можете запустить инструмент поиска и замены, чтобы заменить этот неподходящий разделитель, к примеру, косой чертой (/):

  • Выберите все ячейки, которые вы хотите превратить в даты.
  • Нажмите Ctrl + H, чтобы открыть диалоговое окно «Найти и заменить».
  • Введите свой пользовательский разделитель (запятую, к примеру) в поле Найти и косую черту в Заменить.
  • Нажмите Заменить все.

поиск и замена

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

Если вы предпочитаете решение на основе формул, вы можете использовать функцию ПОДСТАВИТЬ  (SUBSTITUTE в английской версии), как это мы делали на одном из скриншотов ранее:  

=ДАТАЗНАЧ(ПОДСТАВИТЬ(A6;»,»;».»))

И текстовые строки преобразуются в даты, все при помощи одной формулы.

Как видите, функции ДАТАЗНАЧ или ЗНАЧЕН довольно мощные, но они, к сожалению, имеют свои ограничения. Например, если вы пытаетесь работать со сложными конструкциями, такими как четверг, 01 января 2021 г., ни одна из них не сможет помочь. 

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

Мастер преобразования текста в столбцы — не требующий формул способ преобразования текста в дату.

Вам пригодится достаточно древний инструмент Excel под названием «Текст в столбцы». Он умеет работать как с простыми текстовыми датами, так и с текстовыми строками из нескольких частей.

Пример 1. Преобразование простых текстовых строк в даты.

В этом примере мы будем превращать текстовые строки, например 01 01 2015 (день, месяц и год разделены пробелами), в даты.

  1. На рабочем листе выберите столбец, содержимое которого вы хотите конвертировать.
  2. Перейдите на вкладку «Данные», и нажмите «Текст по столбцам».

инструмент "текст по столбцам"

  1. На шаге 1 мастера преобразования текста в столбцы выберите «С разделителями» и нажмите «Далее».
  2. На шаге 2 мастера снимите флажки со всех разделителей и нажмите Далее.
  3. На последнем шаге выберите «Дата» в разделе «Формат данных столбца», укажите в выпадающем списке видсоответствующий вашим данным.  Нажмите «Готово».

Теперь Excel распознает ваши текстовые значения как нужно, автоматически преобразует их в формат даты по умолчанию и отобразит в ячейках с выравниванием по правому краю. 

Вы можете изменить представление результата обычным способом через диалог Формат ячеек.

Заметка. Для правильной работы мастера «Текст по столбцам» все записи должны быть единообразными. Например, если некоторые из них выглядят как день / месяц / год , а другие — месяц / день / год , вы получите неверные результаты.

Пример 2. Преобразование сложных текстовых строк в даты.

Если ваши записи представлены более сложной фразой из нескольких частей, к примеру:

  • 8 март 2020 г., воскресенье
  • 8 март 2020 г. 15:00

Вам нужно будет приложить немного больше усилий и использовать рассматриваемый нами инструмент в комбинации с функцией ДАТА.

Важно! Название месяца при использовании этого метода должно быть в именительном падеже!

  1. Выберите нужную область данных.
  2. Вызовите мастер преобразования.
  3. На шаге 1 укажите «С разделителями» и нажмите « Далее» .
  4. На шаге 2 мастера выберите разделители, которые у вас используются.

Например, если вы преобразуете строки, разделенные запятыми и пробелами, например «8 март 2020г., воскресенье», то вам следует выбрать оба разделителя — запятую и пробел.

Также имеет смысл выбрать опцию «Считать последовательные разделители одним», чтобы игнорировать лишние пробелы или пробел после запятой, если они есть в ваших данных.

Я немного усложнил наш пример, добавив после порядкового номера года еще букву «г» с точкой. Поэтому эта буква и добавлена в список разделителей.

И, наконец, взгляните на окно Образец разбора данных и проверьте, правильно ли поделены ваши слова на столбцы. Затем нажмите «Далее».

  1. На шаге 3 мастера убедитесь, что все колонки в разделе предварительного просмотра данных имеют формат «Общий». Если это не так, щелкните столбец и выберите Общий в разделе Формат данных.

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

Если вам не нужен какой-то из столбцов, щелкните по нему и выберите «Пропустить».

мастер распределения по столбцам

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

Если вы не хотите перезаписывать исходные данные, укажите, где именно должны быть вставлены результаты — введите адрес верхней левой ячейки в поле «Поместить в…». Выбираем ячейку B2.

Когда закончите, нажмите кнопку Готово.
Как вы видите на скриншоте выше, мы пропускаем четвертую и пятую колонки с точкой и днями недели, разделяем остальные данные на 3 столбца (в общем формате) и вставляем их, начиная с ячейки В2.

На следующем рисунке показан результат с исходными данными в A и разделенными на части данными в В, C и D.

  1. Наконец, вы должны объединить эти кусочки вместе, используя функцию ДАТА (DATE). Синтаксис её не требует особых пояснений:

=ДАТА(год, месяц, день)

В нашем случае год записан в колонке D и день — в В, с этим проблем нет.

Но не так просто с месяцем, потому что это слово, а нужен его номер. К счастью, Microsoft Excel предоставляет специальную функцию МЕСЯЦ (MONTH), которая может изменить название месяца на его порядковый номер:

=МЕСЯЦ(порядковый_номер)

Чтобы функция МЕСЯЦ понимала, что она имеет дело с датой, мы выражаем это так:

=МЕСЯЦ(1&C2)

Здесь C2 содержит название месяца, март в нашем случае. «1 &» добавляется для получения даты (1 март), чтобы формула могла превратить ее в соответствующий номер месяца. Повторюсь еще раз, что месяц должен быть здесь в именительном падеже, что не всегда удобно.

А теперь давайте встроим это выражение в качестве второго аргумента:

=ДАТА(D2;МЕСЯЦ(1&C2);B2)

И вуаля, наши сложные комбинации слов и цифр успешно становятся датами:

Как преобразовать текст в дату при помощи формул.

Разберем еще один способ как превратить сложную формулировку в дату. В колонке А записаны датировки как текстовые выражения вида «08 марта 2020г.». Сразу отметим, что записи должны быть единообразны, то есть все числа сохранены в двузначном виде: 01, 07, 08, 10, 12 и т.д.

Используем формулы работы с символьными значениями — ЛЕВСИМВ, ПРАВСИМВ, ПСТР. Они позволяют извлечь определенное количество символов  с начала текстовой строки, с конца или с середины.

Наша задача – разобрать текст на части, из которых затем «склеить» дату.

Используем формулу:

=ДАТАЗНАЧ(ЛЕВСИМВ(A2;2)&»-«&ПСТР(ЛЕВСИМВ(A2;6);4;3)&»-«&ПСТР(ПРАВСИМВ(A2;6);1;4))

Давайте разбираться, как это работает.

ЛЕВСИМВ(A2;2) — извлекаем 2 первых символа, то есть число.

ПСТР(ЛЕВСИМВ(A2;6);4;3) — получаем 3 первых буквы названия месяца.

ПСТР(ПРАВСИМВ(A2;6);1;4) — выводим 4 цифры года.

И объединяем все это при помощи оператора &, вставляя между этими частями тире.

Можно записать и чуть иначе:

=ДАТАЗНАЧ(ЛЕВСИМВ(A2;2)&»-«&ПСТР(A2;4;3)&»-«&ЛЕВСИМВ(ПРАВСИМВ(A2;6;4))

В английской версии:

=DATEVALUE(LEFT(A2,2)&»-«&MID(A2,4,3)&»-«&LEFT(RIGHT(A2,6),4))

Как извлечь дату из сложного текста при помощи формул?

При переносе в Excel различных бухгалтерских данных мы постоянно убеждаемся в том, что фантазия наших бухгалтеров поистине безгранична. В том числе это касается и написания датировок в пояснениях к бухгалтерским проводкам.

Вот несколько готовых решений, которые вам, возможно, пригодятся.

Давайте попробуем вытащить дату из пояснения к бухгалтерским проводкам. Как видите, варианты написания могут быть самые разнообразные. Единственное условие – день должен быть записан в виде двузначного числа: 07 в нашем случае.

Формула, при помощи которой можно извлечь дату из текста, выглядит так:

  • если у вас двумя цифрами обозначены день и месяц, и четырьмя – год:

=ПСТР(A2;ПОИСК(«??.??.????»;A2);10)

  • а вот если год – либо последние две, либо все четыре цифры, тогда есть более универсальный вариант:

=—ПСТР(A2;ПОИСК(«??.??.»;A2);8+2*ЕЧИСЛО(-ПСТР(A2;ПОИСК(«.??.»;A2)+6;1)))

Как должен выглядеть результат в ячейке — определите самостоятельно. Как именно – мы уже несколько раз разбирали. Смотрите чуть выше.

А если сделать так, чтобы и внешний вид извлеченной даты также устанавливался не вручную, а при помощи формулы? Здесь нам поможет функция ТЕКСТ.

определяем формат вывода даты при помощи функции ТЕКСТ

Самый базовый вариант представления выглядит так:

=ТЕКСТ(ПСТР(A1;ПОИСК(«??.??.»;A1);8)&ТЕКСТ(ПСТР(A1;ПОИСК(«.??.»;A1)+6;2);»0;;;»);»DD MMMM YYYY»)

Как видите, вся хитрость заключается в правильном описании формата во втором аргументе. «DD MMMM YYYY» означает число, месяц в именительном падеже и год из четырёх цифр. А вот «[$-FC19]DD MMMM YYYY» сделает то же самое, но месяц будет в родительном падеже (7 ноября). Остальные варианты вы видите на рисунке выше. Можете сами выбрать тот, который больше подходит для ваших задач.

Ну а если день у вас может быть записан и одной цифрой, и двузначным числом? И здесь есть универсальный вариант. Правда, более сложный.

Здесь применяем формулу массива.

{=ЕСЛИОШИБКА(—ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A2;МИН(ЕСЛИОШИБКА(НАЙТИ(ТЕКСТ(СТРОКА($A$2:$A$363);{«dd.mm.»;»d.mm.»;»dd/mm/»;»d/mm/»});A2);9^9));10);» «;»    «);»г»;»   «);10);»»)}

Естественно, скобки вводить не нужно: они появятся автоматически после того, как вы в конце ввода формулы нажмете комбинацию клавиш CRTR+SHIFT+ENTER.

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

К примеру, чтобы сразу получить «07 ноября 2019 г.», можно изменить наше выражение следующим образом:

{=ТЕКСТ(ЕСЛИОШИБКА(—ЛЕВСИМВ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A2;МИН(ЕСЛИОШИБКА(НАЙТИ(ТЕКСТ(СТРОКА($A$2:$A$363);{«dd.mm.»;»d.mm.»;»dd/mm/»;»d/mm/»});A2);9^9));10);» «;»    «);»г»;»   «);10);»»);»[$-FC19]dd mmmm yyyy г.;@»)}

И не забывайте про формулу массива!

Быстрая конвертация при помощи Специальной вставки.

Чтобы быстро переделать диапазон простых текстовых строк в даты, вы можете использовать следующую хитрость.

  • Скопируйте любую пустую ячейку (выделите ее и нажмите Ctrl + C).
  • Выберите диапазон с текстовыми значениями, которые вы хотите превратить в даты.
  • Щелкните правой кнопкой мыши выделенную область, выберите «Специальная вставка» и выберите «Сложить» в диалоговом окне:

  • Нажмите кнопку ОК, чтобы завершить работу и закрыть диалоговое окно.

Что вы только что сделали, это попросили Эксель добавить ноль (пустую ячейку) к вашим текстовым датам. Чтобы выполнить это, программа конвертирует текст в число, и, поскольку добавление нуля не приводит к изменению значения, вы получаете именно то, что хотели — порядковый номер дня. 

Как и обычно, далее вы устанавливаете для этих ячеек нужный вид с помощью диалогового окна «Формат ячеек».

Исправление записей с двузначными годами.

Современные версии Microsoft Excel достаточно умны, чтобы обнаружить некоторые очевидные ошибки в ваших данных, или, точнее, сказать, что Эксель считает ошибкой. Когда это произойдет, вы увидите индикатор ошибки (маленький зеленый треугольник) в верхнем левом углу клетки, и, когда вы выделите её, появится восклицательный знак.
При нажатии на восклицательный знак отобразятся несколько параметров, относящихся к вашим данным. В случае двухзначного года программа спросит, хотите ли вы преобразовать его в 19XX или 20XX.

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

Как преобразовать 8-значное число в дату в Excel

Это очень распространенная ситуация, когда дата вводится как 8-значное число, например 10032021. Вам необходимо преобразовать ее в такой вид, который может распознать Excel (то есть, 20.03.2021). В этом случае простое изменение формата ячейки на «Дата» не пройдёт – в результате вы получите ##########.

Чтобы преобразовать это в дату, вам нужно будет использовать функцию ДАТА() в сочетании с функциями ПРАВСИМВ(), ЛЕВСИМВ() и ПСТР(). К сожалению, невозможно составить универсальную формулу, которая будет работать во всех сценариях, потому что исходное значение может быть введено самыми разными способами. Например:

Число Формат Дата
20032021 ддммгггг 20-мар-2021
20210320 ггггммдд
20212003 ггггддмм

Я постараюсь объяснить общий подход к преобразованию таких чисел в даты и приведу несколько примеров формул.

Для начала запомните порядок аргументов функции ДАТА():

=ДАТА(год; месяц; день)

Итак, что вам нужно сделать, так это извлечь год, месяц и день из исходного числа и передать их в качестве соответствующих аргументов функции ДАТА().

Например, давайте посмотрим, как преобразовать число 20032021 (хранящееся в ячейке A2) в 20.03.2021.

  • Извлекаем год. Это последние 4 цифры, поэтому мы используем функцию ПРАВСИМВ, чтобы выбрать последние 4 символа: ПРАВСИМВ(A2; 4).
  • Месяц. Это третья и четвёртая цифры, поэтому мы используем функцию ПСТР, чтобы получить их: ПСТР(A2;3;2). Здесь цифра 3 (второй аргумент) – это начальная позиция, а 2 – это количество символов, которые нужно извлечь.
  • День. Это первые две цифры, поэтому у нас есть функция ЛЕВСИМВ, которая возвращает их: ЛЕВСИМВ(A2;2).

Наконец, вставьте указанные выше элементы в функцию ДАТА(), и вы получите формулу для преобразования числа в дату в Excel:

=ДАТА(ПРАВСИМВ(A2;4);ПСТР(A2;3;2);ЛЕВСИМВ(A2;2))

Следующий скриншот демонстрирует это и еще пару выражений в действии:

Обратите внимание на строку 5 на скриншоте выше:

=ДАТА(«20″&ЛЕВСИМВ(A5;2);ПРАВСИМВ(A5;2);ПСТР(A5;3;2))

 Исходное число (212003) содержит только два символа, обозначающих год (21). Итак, чтобы получить 2021 год, мы объединяем 20 и 21, используя следующую формулу:

«20»&ЛЕВСИМВ(A5;2)

Если вы не сделаете этого, функция ДАТА() возвратит 1921 год, что немного странно, как будто Microsoft все еще живет в 20-м веке :)

В том случае, если число представляет собой последовательность ДДММГГГ или ГГГММДД, то для конвертации в дату можно использовать функцию ТЕКСТ().

К примеру, число 20210320 можно преобразовать при помощи формулы

=—ТЕКСТ(A3;»0000/00/00″)

Сначала в нужных местах мы вставляем разделители — наклонную черту. Получаем текст 2021/03/20. А затем производим с ним математическую операцию: дважды умножаем на минус 1. Видя операцию умножения, Excel пытается превратить содержимое ячейки в число. И ему это успешно удается: получаем 44275. Осталось применить подходящий формат даты.

Примечание. Формулы, показанные в этом примере, работают правильно, если все числа, которые вы хотите преобразовать в даты, подчиняются одному и тому же определённому шаблону.

Простой способ преобразования текста в дату без формул.

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

Установите надстройку Ultimate Suite (бесплатную пробную версию можно скачать здесь), переключитесь на вкладку AblebitsTools (в ваш Excel будут добавлены 2 новые вкладки, содержащие более 60 очень полезных инструментов) и активируйте инструмент Text to Datе.

Чтобы преобразовать «дату-как-текст» в обычную дату, выполните следующие действия:

  1. Выделите ячейки с текстовыми данными и нажмите Text to Date .
  2. Укажите порядок дат (дни, месяцы и годы) в выбранных ячейках.
  3. Выберите, нужно ли включать время в преобразованные даты.
  4. Щелкните Преобразовать (Convert).

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

А вот пример конвертации текста в дату и время:

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

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

Если вам интересно узнать больше об этом замечательном инструменте, посетите его домашнюю страницу.

Итак, мы с вами рассмотрели как в Excel можно различными способами преобразовать текст в дату. Надеюсь, вам удалось найти метод по своему вкусу.

 Я благодарю вас за чтение и надеюсь вновь увидеть вас на нашем сайте.

Также рекомендуем:

Как перевести время в число В статье рассмотрены различные способы преобразования времени в десятичное число в Excel. Вы найдете множество формул для преобразования времени в часы, минуты или секунды. Поскольку Microsoft Excel использует числовую систему для работы с временем, вы можете…
Формат времени в Excel Вы узнаете об особенностях формата времени Excel, как записать его в часах, минутах или секундах, как перевести в число или текст, а также о том, как добавить время с помощью…
Как быстро посчитать количество слов в Excel В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как быстро извлечь число из текста в Excel В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно…
Как вывести месяц из даты На примерах мы покажем, как получить месяц из даты в таблицах Excel, преобразовать число в его название и наоборот, а также многое другое. Думаю, вы уже знаете, что дата в…
Функция ПРАВСИМВ в Excel — примеры и советы. В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…

Функции и формулы для преобразования номера в название месяца

Время от времени возникает необходимость изменить порядковый номер месяца на название и наоборот (например, 3 на «Март» или «Октябрь» на 10).

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

Изменение порядкового номера месяца на его название в Excel

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

=ИНДЕКС($A$2:$A$13;B2)

где $A$2:$A$13 – это, конечно, диапазон с названиями месяцев, а B2 — ячейка с порядковым номером в году, для которого мы ищем его название.

Пример 1.

По схожему принципу с функцией ИНДЕКС работает другая функция, которую вы можете использовать — ВЫБОР. Разница состоит в том, что она не использует ячейки листа, в которых хранятся названия месяцев. Названия месяцев просто даем в качестве аргумента функции.

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

Если в качестве списка значений указать названия месяцев (по очередности), а в качестве индекса — ячейку с номером месяца, то функция вернет соответствующее ему название для каждого заданного числа.

ВЫБОР.

Вариант2 автономный и более удобный для использования формулы на разных листах или рабочих книга без применения внешних ссылок.



Примеры как получить название месяца из даты в Excel

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

Если у вас есть список с датами и нужно «вытянуть» из них название месяцев, то функция ИНДЕКС в приведенном выше виде выдаст ошибку. Если вы хотите, чтобы формула работала правильно, необходимо при помощи функции МЕСЯЦ «вытянуть» номер месяца из ячейки с датой. Формула будет выглядеть следующим образом:

=ИНДЕКС($A$2:$A$13;МЕСЯЦ(E2))

по дате.

Еще один способ (возможно, самый удобный) — использовать функцию ТЕКСТ (все, что делает функция ТЕКСТ, это преобразует числовое значение в текст с соответствующим форматированием).

Если у вас есть список с датами и нужно «вытянуть» из них название месяцев, просто введите:

=ТЕКСТ(E2;»mmmm»)

где E2 – это, конечно, ячейка с датой.

ИНДЕКС.

Если вы работаете только с числами (1-12), функция в приведенной выше форме будет работать неправильно. Вы должны помнить, что число 1 для Excelя это 1 января 1900 года, число 2 — 2 января 1900 года и так далее. Это все тот же месяц — январь. Поэтому ТЕКСТ(E2;»ММММ») возвращает «Январь» для каждого номера месяца.

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

Формула функции:

=ТЕКСТ(B2*30;»mmmm»)

ТЕКСТ.

будет работать правильно, и в качестве результата вернет названия месяцев.

Как преобразовать название месяца в порядковый номер

Теперь будем преобразовывать обратно – имя месяца в соответствующий ему порядковый номер в году.

Пример1. Формула первая:

=МЕСЯЦ(ДАТАЗНАЧ(A2&»1″))

получить название месяца из даты.

Значение Декабрь1 Excel автоматически преобразует в дату дек.01. Далее функция ДАТАЗНАЧ преобразует дату в число после с помощью функции МЕСЯЦ мы получаем порядковый номер в году для текущего названия месяца. По сути формулу можно упростить:

=МЕСЯЦ(A2&»1″)

Пример2. Формула вторая:

=ВПР(A2;$G$1:$H$12;2;0)

преобразовать название месяца в номер.

Пример3. Формула третья:

ВПР.

Наиболее оптимальным вариантом является лаконичная формула =МЕСЯЦ(A2&»1″). В ней не нужно резервировать названия месяцев и присваивать им соответственные порядковые номера. К тому же в ней используется всего лишь одна функция.

Преобразование в Дату в Excel. Бесплатные примеры и статьи.

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

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

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

Автоматическое преобразование формата ячейки в MS EXCEL при вводе ТЕКСТовых данных (Часть 2)

Продолжаем бороться в MS EXCEL 2007 с автоматическим преобразованием формата ячейки при вводе данных в ячейку. При вводе пользователем данных, EXCEL пытается определить тип вводимых данных. Если данные можно перевести в формат даты, то EXCEL производит соответствующее преобразование и форматирование. Часто текстовые строки действительно имеют формат дат (2-3-8, т.е. 2 марта 2008), но на самом деле ими не являются (например, это м.б. артикул). В этом случае необходимо запретить EXCEL выполнять автоматическое преобразование и форматирование.

Преобразование в MS EXCEL ТЕКСТовых значений в ДАТУ

Бывает, что при экспорте значений в EXCEL, даты записываются в незнакомом для EXCEL формате, например 20081223 (т.е. 2008г, 23 декабря). Для дальнейшей работы с такими датами выполним преобразование в привычный для EXCEL формат даты.

Является ли в MS EXCEL значение ДАТОЙ

Попробуем преобразовать заданное значение в дату. Если это удастся, то будем считать значение датой.

Преобразование ТЕКСТовых значений в ЧИСЛА и ДАТЫ (Часть 2. Групповое изменение в MS EXCEL)

При копировании ЧИСЛОвых данных в EXCEL из других приложений бывает, что Числа сохраняются в ТЕКСТовом формате. Если на листе числовые значения сохранены как текст, то это может привести к ошибкам при выполнении вычислений. В ряде случаев можно быстро изменить текстовый формат на числовой сразу в нескольких ячейках. Произведем это преобразование с помощью Специальной вставки из Буфера обмена.

Преобразование дат из текстового формата в формат даты

В некоторых случаях даты могут быть отформатированы и храниться в ячейках в виде текста. Например, возможно, вы ввели дату в ячейку, отформатированную как текст, или данные были импортированы или вставлены из внешнего источника данных в виде текста.

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

Поскольку функция проверки ошибок в Excel распознает даты в текстовом формате с двузначным номером года, можно воспользоваться средством автозамены и преобразовать их в даты в формате даты. С помощью функции ДАТАЗНАЧ можно преобразовывать в даты большинство типов текстовых дат.

Если вы импортируете данные в Excel из другого источника или вводите даты с двумя цифрами года в ячейки, которые ранее были отформатированы как текст, в левом верхнем углу ячейки может появиться маленький зеленый треугольник. Этот индикатор ошибки указывает на то, что дата хранится в текстовом формате, как показано в данном примере.

Вы можете использовать индикатор ошибки для преобразования дат из текстового формата в формат даты.

Примечания: Сначала убедитесь в том, что в Excel включена проверка ошибок. Для этого:

Щелкните Файл > Параметры > Формулы.

В Excel 2007 нажмите кнопку Microsoft Office и выберите Параметры ExcelExcel 2007формулы.

При проверке ошибокустановите флажок Включить фоновую проверку ошибок. Все найденные ошибки помечаются треугольником в левом верхнем углу ячейки.

В разделе правила проверки ошибоквыделите ячейки, которые содержат годы, представленные 2 цифрами.

Выполните указанные ниже действия, чтобы преобразовать дату в текстовом формате в обычную дату.

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

Совет: Чтобы отменить выделение ячеек, щелкните любую ячейку на листе.

Нажмите появившуюся рядом с выделенной ячейкой кнопку ошибки.

В меню выберите команду Преобразовать XX в 20XX или Преобразовать XX в 19XX. Если вы хотите отключить индикатор ошибки, не преобразуя число, нажмите кнопку пропустить ошибку.

Текстовые даты с двумя цифрами года преобразуются в стандартные даты с четырьмя цифрами года.

После преобразования ячеек с текстовыми значениями можно изменить внешний вид дат путем применения формата даты.

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

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

Нажмите кнопку числовой формат и выберите нужный формат даты.

Краткий формат даты выглядит следующим образом:

В длинный формат даты содержатся дополнительные сведения, как показано на рисунке:

Чтобы преобразовать текстовую дату в ячейку в серийный номер, используйте функцию ДАТАЗНАЧ. Затем скопируйте формулу, выделите ячейки, содержащие текстовые даты, и используйте команду Специальная Вставка , чтобы применить к ним формат даты.

Выполните указанные ниже действия:

Выберите пустую ячейку и убедитесь в том, что ее числовой формат является общим.

В пустой ячейке сделайте следующее.

Щелкните ячейку, содержащую дату в текстовом формате, которую следует преобразовать.

Нажмите клавишу ВВОД, и функция ДАТАЗНАЧ возвращает порядковый номер даты, представленной текстовым форматом даты.

Что такое серийный номер Excel?

В Excel даты хранятся в виде порядковых номеров, что позволяет использовать их в вычислениях. По умолчанию 1 января 1900 г. является порядковым числом 1, а 1 января 2008 — порядковый номер 39448, так как он составляет 39 448 дня после 1 января, 1900.To скопировать формулу преобразования в диапазон смежных ячеек, выделите ячейку, содержащую введенную формулу. , а затем перетащите маркер заполнения по диапазону пустых ячеек, который соответствует размеру диапазона ячеек, содержащих текстовые даты.

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

Выделите ячейку или диапазон ячеек, которые содержат серийные номера, а затем на вкладке Главная в группе буфер обмена нажмите кнопку Копировать.

Сочетание клавиш: Кроме того, можно нажать клавиши CTRL + C.

Выделите ячейку или диапазон ячеек, которые содержат даты в текстовом формате, и на вкладке Главная в группе Буфер обмена нажмите стрелку под кнопкой Вставить и выберите команду Специальная вставка.

В диалоговом окне Специальная вставка в разделе Вставить выберите параметр Значения и нажмите кнопку ОК.

На вкладке Главная нажмите кнопку вызова всплывающего окна рядом с полем число.

В поле Категория выберите пункт Дата, после чего укажите необходимый формат даты в списке Тип.

Чтобы удалить серийные номера после того, как все даты будут успешно преобразованы, выделите ячейки, содержащие их, а затем нажмите клавишу DELETE.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

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

Функция ДАТАЗНАЧ для преобразования текста в дату в Excel

Функция ДАТАЗНАЧ в Excel предназначена для работы с текстовыми данными в формате ДАТА. Она используется для преобразования текстовых данных в формат Дата и возвращает числовое значение, характеризующее указанную дату.

Как преобразовать дату в текст в Excel

В Excel каждой дате соответствует определенное число дней, прошедших с принятой точки отсчета – 1 января 1900 года. Функция ДАТАЗНАЧ возвращает число, соответствующее числовому представлению даты, которая указана в виде текста, с учетом указанной выше особенности хранения дат в Excel. Формат возвращаемого значения зависит от настроек формата ячейки, в которой будет выведен результат вычислений.

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

Пример 1. В таблице Excel находится столбец, в котором хранятся даты как текстовые строки, при этом записи имеют вид: «28 сентября 2018 года». Преобразовать эти значения в данные формата Дата.

Вид таблицы данных:

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

Единственный аргумент состоит из подстрок, склеенных амперсандами (&):

  1. Функция ЛЕВСИМВ возвращает номер дня (первые два символа строки, содержащейся в ячейке A2). Очень важно, чтобы однозначные номера дней (например, 8 апреля) записывались как 08 апреля (имели нуль в начале), иначе будет возникать ошибка.
  2. Комбинация функций ПСТР и ЛЕВСИМВ выделяет из строки три первых символа названия месяца и возвращает их.
  3. Комбинация функций ПСТР и ПРАВСИМВ выделяет 4 символа, соответствующие числовому представлению года.

Растянем формулу вниз по столбцу, чтобы рассчитать остальные значения:

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

Обработка значений даты в текстовом формате в Excel

Пример 2. В таблице Excel указаны даты неверного формата (вместо записи вид «13.06.2019» используется 13_06_2019). Такие данные указаны в двух столбцах. В соседнем необходимо вычислить разницу дней между указанными датами.

Вид таблицы данных:

Для расчетов используем следующую формулу:

Для получения текстовой строки, которая может быть преобразована в данные формата Дата с помощью функции ДАТАЗНАЧ, используем функцию ПОДСТАВИТЬ, которая выполняет замену символов «_» на «.». Результат вычитания двух полученных дат – искомое значение.

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

Особенности синтаксиса функции ДАТАЗНАЧ в Excel

Функция ДАТАЗНАЧ имеет следующую синтаксическую запись:

Единственным аргументом (обязателен для заполнения) является дата_как_текст – текстовое представление даты, которое может быть преобразовано к данным формата Дата. В Excel есть несколько допустимых вариантов записи дат: 13-июн-2019, 13.06.2019. Любой из этих вариантов записи может быть использован в качестве аргумента функции ДАТАЗНАЧ.

  1. Если текстовые строки, характеризующие даты, хранятся в ячейках Excel, большинство функций выполняют преобразования данных к требуемому типу автоматически. Однако, во избежание возможных ошибок, рекомендуется использовать функцию ДАТАЗНАЧ.
  2. Рассматриваемая функция ориентируется на показания часов, встроенных в ПК, на котором используется редактор Excel. Если в качестве текстового представления даты указана неполная дата, например «13.06», данные о годе будут взяты из текущего времени. Например, функция =ДАТАЗНАЧ(“13.06”) вернет значение 43629, которое после установления формата Дата для ячейки будет преобразовано в 13.06.2019.
  3. Если в качестве аргумента функции ДАТАЗНАЧ было передано значение, не преобразуемое к формату Дата (например, =ДАТАЗНАЧ(23), =ДАТАЗНАЧ(ИСТИНА), =ДАТАЗНАЧ(“333”)), будет возвращен код ошибки #ЗНАЧ!
  4. Для склеивания значений, содержащихся в отдельных ячейках, чтобы «собрать» их в одну строку, характеризующую значение даты, следует использовать символ “&”. Например, в ячейках A1, B1, C1 хранятся значения 10, 3 и 2019 соответственно. Чтобы получить данные формата Дата и записать их в отдельную ячейку, можно использовать следующую функцию — =ДАТАЗНАЧ(A1&».»&B1&».»&C1).

Excel works!

Excel работает за вас

Excel works!

Thanks for Visiting

Как перевести время в число в Excel

Еще раз привет. Как обычно начну статью с того, что скажу — часто встречаюсь с каким-нибудь незнанием со стороны пользователей и сейчас расскажу об этом. Банально, но действительно так и приходят идеи о статье. Сегодня хочется написать отдельный текст про работу со временем в Excel. Как можно быстро обработать временные данные? Как перевести время в число в Excel? Как не запутаться в этом — читаем в тексте!

Время и число в Excel. =СЕГОДНЯ()

Сразу скажу что дата и время в Excel — это в первую очередь числовые данные. И только в определенном формате эти числа выглядят как время или дата.

Изначально у создателей Excel практически не было выбора как оформить временные и данные в табличном редакторе. Вопрос стоял в том, создать ли отдельный тип данных для времени/даты или преобразовать из числа в нужную форму отображения. Вопрос решился быстро и, как кажется, правильно.

Любое значение дата_время в Excel — это число преобразованное в нужный формат числа при помощи опции Формат ячеек!

Приведем пример. Вам нужно задать сегодняшнюю дату? Пожалуйста! Записываем функцию =СЕГОДНЯ() — без аргумента в скобках. Она возвращает сегодняшнее число. Как правило, сразу в этой ячейке будет дата в правильном формате.

Но что будет, если данные перевести в формат Числовой? Появиться число 42544,00.

Тоже самое будет и со временем в формате Время (см. на первой картинке), значение будет равно, например 21:00. Если сравнить значения чисел, то они будут идентичны.

Соответственно, как складывать и вычитать такие данные? Да как обычные числа! Если вы хотите, чтобы у вас в ячейке отображалось дата_время, просто сложите числа и задайте нужный формат. Как на примере:

Так же быть и с вычитанием данных друг из друга.

Теперь можно перейти к хитростям обработки дата_время.

Отделить дату от времени и наоборот в Excel

Предположим, что у вас уже есть числа в формате дата_время, например вы выгрузили их из учетной системы или вам их прислали по почте.

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

Воспользуйтесь формулой для определения времени из дата_время

Формула находит целое значение числа, что будет для нас датой и вычитает из общего значения — разница будет для нас временем, не забудьте перевести в полученные данные в формат времени.

Как перевести время в число в Excel? Функции ДЕНЬ, ЧАС, МИНУТЫ

Это тоже просто, если знаете хитрость. Очень и очень часто, нам удобнее использоваться формат 3,5 часа, чем 3:30. Т.е. перевод числа во временном формате в число, но с нужным значением. Для этого есть прекрасные функции Excel =ЧАС(), =МИНУТЫ().

Чтобы перевести время 3:30 в просто три с половиной часа, нам нужно воспользоваться формулой.

Как работает: мы находим количество полных часов функцией ЧАС, затем находим количество полных минут и делим их на 60, чтобы получить минут в часе. Готово!

Так же, как верно подсказали мне в комментариях, можно умножить 3:30 (в ячейке A1) на 24 — получится числовое значение времени.

Если необходимо подсчитать количество дней во времени (например 33:30:00) нужно воспользоваться функцией ДЕНЬ.

Важно! Не забудьте перевести ячейку в числовой формат, иначе после выполнения формулы, или в ячейке будет выдаваться 0:00:00
Это будет удобно при работе с большим объемом данных, вычислениями со временем или группировкой данных в сводной таблице

Эффективная работа в MS Office

Экономия 5 минут в час за счет более продуктивной работы дает за год экономию в 4 рабочие недели

Обратное преобразование даты в число

Когда вы связываете несколько систем друг с другом возможны всякие…нюансы. Вроде таблицы с числами вида

Само собой при выгрузке не имелся ввиду июнь 2034 года или 4 августа 2016 года. А конкретные числа 6.34 или 4.08, которые Excel по ошибке попытался преобразовать в даты. Тот же самый механизм, что и если вы введете в любой ячейке любого листа, например, текстом «12-15» и нажмете на Enter. Вы думаете, что вводите числовой диапазон, а Excel думает, что это незавершенная дата вида 12-15-2016 и «помогает» вам дописать его.

Исправить при вводе это автоматическое преобразование можно добавив в начало формулы одинарный апостроф — ‘ . В этом случае неважно что вы введете в значение ячейки (в том числе формулу) — Excel будет считать, что дальше текст.

Само преобразование может пойти по трем путям (в т.ч. в зависимости от региональных разделителей):
1. Если второе число меньше или равно 12. Excel будет пытаться определить в первом числе день, во втором числе месяц
2. Если второе число больше 12, но меньше или равно 29. Excel будет считать первое число месяцем, второе — годом. Год будет считаться от 1900
3. Если второе число больше или равно 30. Excel будет считать первое число месяцем, второе — годом. Год будет считаться от 2000

Итак, причины и механизмы возникновения ошибки ясны. Как поправить? Простая махинация вроде —A2 не поможет ведь после «дописки» значения до даты прошло преобразование и то же число 6.34 это теперь 12 571.

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

Запишем формулу с вложенным ЕСЛИ():

Для Ситуации 1 мы должны склеить дни (целое число) и номер месяца (дробная часть числа):

Для Ситуации 2 и 3 мы должны взять номер месяца (целое число) и две последние цифры года (дробная часть числа).

Осталось только подставить эти значения в наш ЕСЛИ() в соответствующие группы формулы:

И вуаля. Можем преобразовать хоть 10 000 строк за раз.

PS К сожалению, в ситуации 1 мы не можем точно знать какое число было преобразовано в дату — с нулем, или без него как первый знак после запятой. То есть 4,08 и 4,8 в данном случае будут преобразованы одинаково.

PPS Если на компьютере стоит в качестве разделителя точки — нужно поправить формулу в двойных кавычках должна быть точка.

Понравилась статья? Поделить с друзьями:
  • Excel функция обработки ошибок
  • Excel функция нумерация строк
  • Excel функция номер строки ячейки
  • Excel функция номер дня
  • Excel функция новой строки