Оглавление
В учебнике рассказывается, как использовать функции Excel для преобразования текста в дату и числа в дату, как превращать текстовые строки в даты неформульным способом. Вы также узнаете, как быстро изменить формат числа на формат даты.
Поскольку Excel - не единственное приложение, с которым вы работаете, иногда вам приходится работать с датами, импортированными в лист Excel из файла .csv или другого внешнего источника. Когда это происходит, есть вероятность, что даты экспортируются как текстовые записи. Даже если они выглядят как даты, Excel не распознает их как таковые.
Существует множество способов преобразования текста в дату в Excel, и цель этого руководства - охватить их все, чтобы вы могли выбрать метод преобразования текста в дату, наиболее подходящий для вашего формата данных и ваших предпочтений в отношении способа с формулами или без формул.
Как отличить обычные даты Excel от "текстовых дат"
При импорте данных в Excel часто возникает проблема с форматированием дат. Импортированные записи могут выглядеть как обычные даты Excel, но они не ведут себя как даты. Microsoft Excel рассматривает такие записи как текст, что означает, что вы не можете правильно сортировать таблицу по дате, а также использовать эти "текстовые даты" в формулах, PivotTables, диаграммах и других инструментах Excel, которые распознают даты.
Есть несколько признаков, которые помогут вам определить, является ли данная запись датой или текстовым значением.
Даты | Текстовые значения |
|
|
Как преобразовать число в дату в Excel
Поскольку все функции Excel, изменяющие текст на дату, возвращают в качестве результата число, давайте сначала рассмотрим преобразование чисел в даты.
Как вы, вероятно, знаете, Excel хранит даты и время как порядковые номера, и только форматирование ячейки заставляет число отображаться как дата. Например, 1-январь-1900 хранится как число 1, 2-январь-1900 хранится как 2, а 1-январь-2015 хранится как 42005. Для получения дополнительной информации о том, как Excel хранит даты и время, смотрите раздел Формат даты Excel.
При вычислении дат в Excel результат, возвращаемый различными функциями даты, часто является порядковым номером, представляющим дату. Например, если =TODAY()+7 возвращает число 44286 вместо даты, которая наступает через 7 дней после сегодняшнего дня, это не означает, что формула неверна. Просто формат ячейки установлен на Общий или Текст в то время как должно быть Дата .
Чтобы преобразовать такой серийный номер в дату, достаточно изменить формат номера ячейки. Для этого просто выберите Дата в Формат номера поле на Главная вкладка.
Чтобы применить формат, отличный от формата по умолчанию, выделите ячейки с порядковыми номерами и нажмите Ctrl+1, чтобы открыть окно Форматирование ячеек диалог. На Номер выберите Дата выберите нужный формат даты в разделе Тип и нажмите OK.
Да, это так просто! Если вам нужно что-то более сложное, чем предопределенные форматы дат Excel, посмотрите, как создать пользовательский формат даты в Excel.
Если какое-то упрямое число отказывается меняться на дату, проверьте, не работает ли формат даты в Excel - советы по устранению неполадок.
Как преобразовать 8-значное число в дату в Excel
Это очень распространенная ситуация, когда дата вводится как 8-значное число, например 10032016, а вам нужно преобразовать ее в значение даты, которое Excel может распознать (10/03/2016). В этом случае простое изменение формата ячейки на Date не сработает - в результате вы получите ##########.
Чтобы преобразовать такое число в дату, необходимо использовать функцию DATE в сочетании с функциями RIGHT, LEFT и MID. К сожалению, невозможно составить универсальную формулу, которая будет работать во всех сценариях, поскольку исходное число может быть введено в различных форматах. Например:
Номер | Формат | Дата |
10032016 | ddmmyyy | 10-мар-2016 |
20160310 | yyyymmdd | |
20161003 | yyyyddmm |
В любом случае, я постараюсь объяснить общий подход к преобразованию таких чисел в даты и привести несколько примеров формул.
Для начала запомните порядок аргументов функции Excel Date:
DATE(год, месяц, день)Итак, что вам нужно сделать, так это извлечь год, месяц и дату из исходного числа и предоставить их в качестве соответствующих аргументов функции Date.
Например, посмотрим, как можно преобразовать число 10032016 (хранящееся в ячейке A1) в дату 3/10/2016.
- Извлечь год Это последние 4 цифры, поэтому мы используем функцию RIGHT, чтобы выбрать последние 4 символа: RIGHT(A1, 4).
- Извлечь месяц Это 3-я и 4-я цифры, поэтому мы используем функцию MID, чтобы получить их MID(A1, 3, 2). Где 3 (второй аргумент) - начальное число, а 2 (третий аргумент) - количество символов для извлечения.
- Извлечь день Это первые 2 цифры, поэтому у нас есть функция LEFT для возврата первых 2 символов: LEFT(A2,2).
Наконец, вставьте вышеуказанные компоненты в функцию Date, и вы получите формулу для преобразования числа в дату в Excel:
=DATE(RIGHT(A1,4), MID(A1,3,2), LEFT(A1,2))
Следующий снимок экрана демонстрирует эту и еще несколько формул в действии:
Обратите внимание на последнюю формулу на скриншоте выше (строка 6). Исходное число-дата (161003) содержит только 2 символа, представляющие год (16). Поэтому, чтобы получить год 2016, мы конкатенируем 20 и 16 по следующей формуле: 20&LEFT(A6,2). Если этого не сделать, функция Date по умолчанию вернет 1916, что немного странно, как будто Microsoft все еще живет в 20 веке :)
Примечание. Формулы, продемонстрированные в этом примере, работают правильно при условии, что все номера которые вы хотите преобразовать в даты, следуйте инструкциям одинаковый рисунок .
Как преобразовать текст в дату в Excel
Когда вы обнаруживаете текстовые даты в вашем файле Excel, скорее всего, вы захотите преобразовать эти текстовые строки в обычные даты Excel, чтобы вы могли ссылаться на них в своих формулах для выполнения различных вычислений. И как это часто бывает в Excel, есть несколько способов решить эту задачу.
Функция Excel DATEVALUE - замена текста на дату
Сайт DATEVALUE функция в Excel преобразует дату в текстовом формате в порядковый номер, который Excel распознает как дату.
Синтаксис функции DATEVALUE в Excel очень прост:
DATEVALUE(дата_текста) Итак, формула для преобразования текстового значения в дату очень проста =DATEVALUE(A1)
, где A1 - ячейка с датой, хранящейся в виде текстовой строки.
Поскольку функция Excel DATEVALUE преобразует текстовую дату в порядковый номер, вам придется сделать это число похожим на дату, применив к нему формат Date, о чем мы говорили минуту назад.
Следующие скриншоты демонстрируют несколько формул Excel DATEVALUE в действии:
Функция Excel DATEVALUE - что нужно помнить
При преобразовании текстовой строки в дату с помощью функции DATEVALUE следует помнить, что:
- Информация о времени в текстовых строках игнорируется, как видно из строк 6 и 8 выше. Для преобразования текстовых значений, содержащих как даты, так и время, используйте функцию VALUE.
- Если в текстовой дате год не указан, то функция DATEVALUE Excel выберет текущий год из системных часов вашего компьютера, как показано в строке 4 выше.
- Поскольку Microsoft Excel хранит даты с 1 января 1900 года, использование функции Excel DATEVALUE для более ранних дат приведет к ошибке #VALUE!
- Функция DATEVALUE не может преобразовать числовое значение в дату, также она не может обработать текстовую строку, которая выглядит как число, для этого вам нужно использовать функцию Excel VALUE, и это именно то, о чем мы будем говорить дальше.
Функция Excel VALUE - преобразование текстовой строки в дату
По сравнению с DATEVALUE функция Excel VALUE более универсальна. Она может преобразовать любую текстовую строку, похожую на дату или число, в число, которое вы можете легко изменить на формат даты по вашему выбору.
Синтаксис функции VALUE следующий:
VALUE(text) Где текст
это текстовая строка или ссылка на ячейку, содержащую текст, который нужно преобразовать в число.
Функция Excel VALUE может обрабатывать как дата и время Последнее преобразуется в десятичную часть, как показано в строке 6 на следующем снимке экрана:
Математические операции для преобразования текста в даты
Помимо использования специальных функций Excel, таких как VALUE и DATEVALUE, вы можете выполнить простую математическую операцию, чтобы заставить Excel выполнить преобразование текста в дату за вас. Необходимым условием является то, что операция не должен изменить значение даты (серийный номер). Звучит немного сложно? Следующие примеры упростят задачу!
Предполагая, что ваша текстовая дата находится в ячейке A1, вы можете использовать любую из следующих формул, а затем применить к ячейке формат Date:
- Добавление:
=A1 + 0
- Умножение:
=A1 * 1
- Подразделение:
=A1 / 1
- Двойное отрицание:
=--A1
Как видно на скриншоте выше, математические операции могут преобразовывать даты (строки 2 и 4), время (строка 6), а также числа, отформатированные как текст (строка 8). Иногда результат даже автоматически отображается как дата, и вам не нужно беспокоиться об изменении формата ячеек.
Как преобразовать текстовые строки с пользовательскими разделителями в даты
Если ваши текстовые даты содержат какой-либо разделитель, кроме прямой косой черты (/) или тире (-), функции Excel не смогут распознать их как даты и вернут ошибку #VALUE!
Чтобы исправить это, вы можете запустить программу Excel Найти и заменить инструмент для замены разделителя на косую черту (/), и все это за один раз:
- Выберите все текстовые строки, которые необходимо преобразовать в даты.
- Нажмите Ctrl+H, чтобы открыть Найти и заменить диалоговое окно.
- Введите пользовательский разделитель (в данном примере - точку) в поле Найдите то, что поле, и косая черта в поле Заменить на
- Нажмите кнопку Заменить все
Теперь функция DATEVALUE или VALUE должна без проблем преобразовать текстовые строки в даты. Таким же образом можно исправить даты, содержащие любой другой разделитель, например, пробел или обратную косую черту.
Если вы предпочитаете решение с помощью формулы, вы можете использовать функцию Excel SUBSTITUTE вместо Заменить все чтобы переключить разделители на косые черты.
Если предположить, что текстовые строки находятся в столбце A, формула SUBSTITUTE может выглядеть следующим образом:
=SUBSTITUTE(A1, ".", "/")
Где A1 - текстовая дата, а "." - разделитель, которым разделяются ваши строки.
Теперь давайте встроим эту функцию SUBSTITUTE в формулу VALUE:
= VALUE(SUBSTITUTE(A1, ".", "/"))
А также преобразование текстовых строк в даты с помощью одной формулы.
Как видите, функции Excel DATEVALUE и VALUE достаточно мощные, но обе имеют свои ограничения. Например, если вы пытаетесь преобразовать сложные текстовые строки типа Четверг, 01 января 2015 года, Ни одна из функций не могла помочь. К счастью, существует неформульное решение, которое может справиться с этой задачей, и в следующем разделе описаны подробные шаги.
Мастер преобразования текста в столбцы - способ преобразования текста в дату без формул
Если вы не являетесь пользователем формул, давно известная функция Excel называется Текст в столбцы Он может работать как с простыми текстовыми датами, показанными в примере 1, так и с многокомпонентными текстовыми строками, показанными в примере 2.
Пример 1. Преобразование простых текстовых строк в даты
Если текстовые строки, которые вы хотите преобразовать в даты, выглядят следующим образом:
- 1.1.2015
- 1.2015
- 01 01 2015
- 2015/1/1
Вам не нужны ни формулы, ни экспорт или импорт. Все, что требуется - это 5 быстрых шагов.
В этом примере мы будем преобразовывать текстовые строки типа 01 01 2015 (день, месяц и год разделяются пробелами) в даты.
- В рабочем листе Excel выберите столбец текстовых записей, которые необходимо преобразовать в даты.
- Переключитесь на Данные вкладка, Инструменты данных группу, и нажмите кнопку Текст в столбцы.
В этом примере мы преобразуем текстовые даты, отформатированные как "01 02 2015" (месяц день год), поэтому мы выбираем MDY из выпадающего списка.
Теперь Excel распознает ваши текстовые строки как даты, автоматически преобразует их в формат даты по умолчанию и отображает в ячейках с правым выравниванием. Вы можете изменить формат даты обычным способом с помощью команды Форматирование ячеек диалог.
Примечание. Для Текст в колонку Чтобы мастер работал правильно, все текстовые строки должны быть отформатированы одинаково. Например, если некоторые из ваших записей отформатированы как день/месяц/год формат, в то время как другие месяц/день/год вы получите неправильные результаты.
Пример 2. Преобразование сложных текстовых строк в даты
Если ваши даты представлены в виде текстовых строк, состоящих из нескольких частей, например:
- Четверг, 01 января 2015 г.
- 01 января 2015 3 PM
Вам придется приложить немного больше усилий и использовать как Текст в столбцы мастер и функция Excel DATE.
- Выберите все текстовые строки, которые необходимо преобразовать в даты.
- Нажмите кнопку Текст в столбцы кнопка на Данные вкладка, Инструменты данных группа.
- На шаге 1 Мастер преобразования текста в столбцы , выберите Делимитированный и нажмите Следующий .
- На шаге 2 мастера выберите разделители, которые содержат ваши текстовые строки.
Например, если вы конвертируете строки, разделенные запятыми и пробелами, такие как " Четверг, 01 января 2015 года" Вы должны выбрать оба разделителя - запятую и пробел.
Также имеет смысл выбрать " Рассматривайте последовательные разделители как один " для игнорирования лишних пробелов, если в ваших данных они есть.
И наконец, взгляните на Предварительный просмотр данных окно и проверьте, правильно ли текстовые строки разбиты на колонки, затем нажмите кнопку Следующий .
- На шаге 3 мастера убедитесь, что все столбцы в разделе Предварительный просмотр данных имеют значение Общий формат. Если нет, щелкните по столбцу и выберите Общий под Формат данных колонки варианты.
Примечание. Не выбирайте Дата формат для любого столбца, потому что каждый столбец содержит только один компонент, поэтому Excel не сможет понять, что это дата.
Если вам не нужен какой-то столбец, щелкните на нем и выберите Не импортировать столбец (пропустить).
Если вы не хотите перезаписывать исходные данные, укажите, куда должны быть вставлены столбцы - введите адрес левой верхней ячейки в поле Место назначения поле.
После этого нажмите кнопку Отделка кнопка.
Как видно на скриншоте выше, мы пропускаем первый столбец с днями недели, разбиваем остальные данные на 3 столбца (в столбце Общий формат) и вставка этих столбцов, начиная с ячейки C2.
На следующем снимке экрана показан результат: исходные данные в столбце A, а разделенные данные в столбцах C, D и E.
- Наконец, необходимо объединить части даты вместе с помощью формулы DATE. Синтаксис функции DATE в Excel не требует пояснений: DATE(год, месяц, день)
В нашем случае,
год
находится в столбце E идень
находится в колонке D, с этим проблем нет.Это не так просто с
месяц
К счастью, Microsoft Excel предоставляет специальную функцию MONTH, которая может изменить название месяца на его номер:=MONTH(serial_number)
Чтобы функция MONTH поняла, что она имеет дело с датой, мы разместим ее следующим образом:
=MONTH(1&C2)
Где C2 содержит название месяца, Январь в нашем случае. "1&" добавляется для конкатенации даты ( 1 января) чтобы функция MONTH могла преобразовать его в соответствующий номер месяца.
А теперь давайте встроим функцию MONTH в функцию
месяц
; аргумент нашей формулы DATE:=DATE(F2,MONTH(1&D2),E2)
И вуаля, наши сложные текстовые строки успешно преобразованы в даты:
Быстрое преобразование текстовых дат с помощью функции Paste Special
Чтобы быстро преобразовать диапазон простых текстовых строк в даты, можно воспользоваться следующим приемом.
- Скопируйте любую пустую ячейку (выделите ее и нажмите Ctrl + C ).
- Выберите диапазон с текстовыми значениями, которые необходимо преобразовать в даты.
- Щелкните правой кнопкой мыши выделение, нажмите Специальная вставка , и выберите Добавить в Специальная вставка диалоговое окно:
Вы только что сказали Excel добавить ноль (пустую ячейку) к вашим текстовым датам. Чтобы иметь возможность сделать это, Excel преобразует текстовую строку в число, а поскольку добавление нуля не изменяет значение, вы получаете именно то, что хотели - порядковый номер даты. Как обычно, вы изменяете число в формат даты с помощью функции Форматирование ячеек диалог.
Чтобы узнать больше о функции Paste Special, см. раздел Как использовать Paste Special в Excel.
Исправление текстовых дат с двузначными годами
Современные версии Microsoft Excel достаточно умны, чтобы заметить некоторые очевидные ошибки в ваших данных, или, лучше сказать, то, что Excel считает ошибкой. Когда это происходит, вы увидите индикатор ошибки (маленький зеленый треугольник) в левом верхнем углу ячейки, а при выделении ячейки появится восклицательный знак:
Нажав на восклицательный знак, вы увидите несколько опций, относящихся к вашим данным. В случае двузначного года Excel спросит, хотите ли вы преобразовать его в 19XX или 20XX.
Если у вас несколько записей такого типа, вы можете исправить их все одним махом - выделите все ячейки с ошибками, затем нажмите на восклицательный знак и выберите соответствующую опцию.
Как включить проверку ошибок в Excel
Обычно проверка ошибок включена в Excel по умолчанию. Чтобы убедиться в этом, нажмите кнопку Файл > Опции > Формулы прокрутите вниз до Проверка ошибок раздел и проверьте, отмечены ли следующие опции:
- Включить фоновую проверку ошибок по адресу Проверка ошибок ;
- Ячейки, содержащие годы, представленные в виде 2 цифр по адресу Правила проверки ошибок .
Как изменить текст на дату в Excel простым способом
Как видите, преобразование текста в дату в Excel - далеко не тривиальная операция, выполняемая одним щелчком мыши. Если вы запутались в различных вариантах использования и формулах, позвольте мне показать вам быстрый и простой способ.
Установите наш пакет Ultimate Suite (бесплатную пробную версию можно загрузить здесь), переключитесь на Инструменты Ablebits (2 новые вкладки, содержащие 70+ замечательных инструментов, будут добавлены в ваш Excel!) и найдите вкладку Текст до даты кнопка:
Чтобы преобразовать текстовые даты в обычные даты, вот что нужно сделать:
- Выделите ячейки с текстовыми строками и нажмите кнопку Текст до даты кнопка.
- Укажите порядок дат (дни, месяцы и годы) в выбранных ячейках.
- Выберите, включать или не включать время в преобразованных датах.
- Нажмите Конвертировать .
Вот и все! Результаты преобразования появятся в соседнем столбце, ваши исходные данные будут сохранены. Если что-то пойдет не так, вы можете просто удалить результаты и попробовать снова с другим порядком дат.
Совет. Если вы выбрали преобразование времени, а также даты, но единицы времени отсутствуют в результатах, обязательно примените формат числа, который показывает и дату, и время. Для получения дополнительной информации см. раздел Как создать пользовательские форматы даты и времени.
Если вам интересно узнать больше об этом замечательном инструменте, зайдите на его домашнюю страницу: Text to Date for Excel.
Вот так можно преобразовать текст в дату в Excel и изменить даты в текст. Надеюсь, вы смогли найти технику по душе. В следующей статье мы будем решать противоположную задачу и рассмотрим различные способы преобразования дат Excel в текстовые строки. Я благодарю вас за чтение и надеюсь увидеть вас на следующей неделе.