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

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

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

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

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

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

Даты

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

·  Выровнено по правому краю.

· Указан формат даты в поле «Числовой формат» на вкладке «Главная » — «Число» .

· По левому краю по умолчанию.

· Общий формат отображается в поле «Число» на вкладке «Главная» — «Число».

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

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

Как конвертировать текст в дату в 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 как число. Но ДАТАЗНАЧ не может превратить числовое значение в показатель времени и не может обработать текст, который выглядит как число. Для этого вам нужно будет использовать функцию ЗНАЧЕН. И это именно то, что мы собираемся обсудить далее.

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

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

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

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

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

Функция ЗНАЧЕН может обрабатывать как дату, так и время. Последнее становится десятичной частью числа, как вы можете видеть в строке 2,6 и 9 на следующем рисунке:

как работает формула ЗНАЧЕН

Обратите внимание на ячейку A9, в которой текст представляет собой число с дробной частью, которая затем будет успешно представлена как время.

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

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

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

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

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

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

Как превратить текстовые строки с пользовательскими разделителями в даты

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

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

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

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

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

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

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

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

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

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

Вам пригодится достаточно древний инструмент 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.

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

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

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

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

Как выделить цветом повторяющиеся значения в Excel? - В этом руководстве вы узнаете, как отображать дубликаты в Excel. Мы рассмотрим различные методы затенения дублирующих ячеек, целых строк или последовательных повторений с использованием условного форматирования.  Ранее мы исследовали различные…
Функция Excel СЕГОДНЯ — синтаксис и основные применения - Функция СЕГОДНЯ в Excel делает именно то, на что указывает ее имя - возвращает сегодняшнюю дату. Синтаксис ее настолько прост, насколько это вообще возможно - у нее вообще нет аргументов. Всякий…
Как быстро вставить сегодняшнюю дату в Excel? - Это руководство показывает различные способы ввода дат в Excel. Узнайте, как вставить сегодняшнюю дату и время в виде статической метки времени или динамических значений, как автоматически заполнять столбец или строку…
Количество рабочих дней между двумя датами в Excel - Довольно распространенная задача: определить количество рабочих дней в период между двумя датами – это частный случай расчета числа дней, который мы уже рассматривали ранее. Тем не менее, в Excel для…
Как посчитать количество дней между датами в Excel? Примеры и советы. - Из этого обзора вы узнаете несколько быстрых и простых способов подсчета, сколько дней проходит между двумя датами в Excel. Вам интересно, сколько составляет разница в днях, месяцах и годах между…
6 способов — как посчитать возраст в Excel по дате рождения. - В Excel нет специальной функции, чтобы посчитать возраст, однако существует несколько различных способов его определения на основе даты рождения. Вы узнаете несколько приемов, как рассчитать его в количестве полных лет,…
Как изменить цвет ячейки в зависимости от значения в Excel? - В этой статье вы найдете 13 примеров как изменить цвет фона ячеек в зависимости от значения в Excel 2016, 2013 и 2010. Кроме того, вы узнаете, как использовать формулы Excel…
Как преобразовать текст в число в Excel — 8 способов. - В этом  руководстве показано множество различных способов преобразования текста в число в Excel: опция проверки ошибок в числах, формулы, математические операции, специальная вставка и многое другое. Иногда значения в ваших…
Как сделать условное форматирование в Excel? Инструкции с примерами. - В этой статье вы найдете множество быстрых способов как сделать условное форматирование строк, столбцов и отдельных ячеек в MS Excel 2016, 2013 и 2010. Мы рассмотрим, как можно применить различное…