Преобразование строки даты в дату
= ЛЕВСИМВ (дата; 10) + ПСТР (дата; 12;8)
= LEFT (дата; 10) + MID (дата; 12;8)
Когда данные даты из других систем вставляются или импортируются в Excel, они могут не распознаваться как правильная дата или время. Вместо этого Excel может интерпретировать эту информацию только как текстовое или строковое значение.
Чтобы преобразовать строку даты в дату-время (дату со временем), вы можете разобрать текст на отдельные компоненты, а затем построить правильное время и дату.
В показанном примере мы используем приведенные ниже формулы.
Для извлечения даты формула в C5:
= ДАТАЗНАЧ (ЛЕВСИМВ(B5;10))
= DATEVALUE (LEFT(B5;10))
= ВРЕМЗНАЧ (ПСТР (B5;12;8))
= TIMEVALUE (MID (B5;12;8))
Чтобы собрать дату-время, формула в E5:
= C5 + D5
Чтобы получить дату, мы извлекаем первые 10 символов значения с помощью ЛЕВСИМВ:
ЛЕВСИМВ(B5;10) // возвращает "2015-03-01"
LEFT(B5;10) // возвращает "2015-03-01"
Результатом является текст, поэтому, чтобы заставить Excel интерпретироваться как дата, мы помещаем ЛЕВСИМВ в ДАТАЗНАЧ, который преобразует текст в правильное значение даты Excel.
Чтобы получить время, мы извлекаем 8 символов из середины значения с ПСТР:
ПСТР (B5;12;8) // возвращает "12:28:45"
MID (B5;12;8) // возвращает "12:28:45"
Опять же, результатом является текст. Чтобы заставить Excel интерпретироваться как время, мы помещаем ПСТР в ВРЕМЗНАЧ, который преобразует текст в правильное значение времени Excel.
Чтобы построить окончательную дата-время, мы просто добавляем значение даты к значению времени.
Хотя этот пример извлекает дату и время отдельно для ясности, вы можете комбинировать формулы, если хотите. Следующая формула извлекает дату и время и объединяет их в один шаг:
= ЛЕВСИМВ(дата; 10) + ПСТР(дата; 12;8)
= LEFT(дата; 10) + MID(дата; 12;8)
Обратите внимание, что в этом случае значения ДАТАЗНАЧ и ВРЕМЯЗНАЧ не нужны, поскольку математическая операция (+) заставляет Excel автоматически принудительно передавать текстовые значения в числа.
Преобразовать дату в Юлианский формат
= ГОД (дата) & ТЕКСТ (дата-ДАТА (ГОД (дата); 1;0); "000")
= YEAR (дата) & TEXT (дата-DATE (YEAR (дата); 1;0); "000")
Если вам нужно преобразовать дату в формат даты в Юлиане в Excel, вы можете сделать это, построив формулу, в которой используются функции ТЕКСТ, ГОД и ДАТА.
«Формат даты в Юлиане» относится к формату, в котором значение года для даты комбинируется с «порядковым днем для этого года» (т. Е. 14-й день, 100-й день и т. д.) для формирования штампа даты.
Есть несколько вариантов. Дата в этом формате может включать в себя 4-значный год (гггг) или год с двумя цифрами (гг), а номер дня может быть заполнен нулями или может быть не дополнен тремя цифрами. Например, на дату 21 января 2017 года вы можете увидеть:
1721 // ГГД
201721 // ГГГГ
2017021 // ГГГГДДД
= ТЕКСТ (B5; "гг") & B5-ДАТА(ГОД (B5); 1;0)
= TEXT (B5; "гг") & B5-DATE(YEAR (B5); 1;0)
Для двузначного года + число дня, дополненное нулями до 3-х мест:
= ТЕКСТ (B5; "гг") & ТЕКСТ (B5-ДАТА (ГОД (B5); 1;0); "000")
= TEXT (B5; "гг") & TEXT (B5-DATE (YEAR (B5); 1;0); "000")
Для четырехзначного года + число дня, дополненное нулями до 3-х мест:
= ГОД(B5) & ТЕКСТ(B5-ДАТА(ГОД(B5); 1;0); "000")
= YEAR(B5) & TEXT(B5-DATE(YEAR(B5); 1;0); "000")
Эта формула строит окончательный результат в 2 частях, объединенных конъюнкцией с оператором амперсанда (&).
Слева от амперсанда мы генерируем значение года. Чтобы извлечь 2-значный год, мы можем использовать функцию ТЕКСТ, которая может применять числовой формат внутри формулы.
ТЕКСТ (B5; "гг")
TEXT (B5; "гг")
ГОД (B5)
YEAR (B5)
С правой стороны амперсанда нам нужно определить день года. Мы делаем это, вычитая последний день предыдущего года с того дня, с которым мы работаем. Поскольку даты - это просто серийные номера, это даст нам «n» день года.
Чтобы получить последний день года предыдущего года, мы используем функцию ДАТА. Когда вы даете ДАТА значение года и месяца и ноль на день, вы получаете последний день предыдущего месяца. Так:
B5-ДАТА(ГОД (B5); 1;0)
B5-DATE(YEAR (B5); 1;0)
Дает нам последний день предыдущего года, который на примере 31 декабря 2015 года.
Теперь нам нужно заполнить значение дня нулями. Опять же, мы можем использовать функцию ТЕКСТ:
ТЕКСТ (B5-ДАТА (ГОД (B5); 1;0); "000")
TEXT (B5-DATE (YEAR (B5); 1;0); "000")
= ДАТА(ЛЕВСИМВ(A1;4); 1; ПРАВСИМВ(A1;3)) // для ггггддд
Если у вас есть только номер дня (например, 100, 153 и т. д.), вы можете жестко закодировать год и вставить следующий день:
= ДАТА (2016;1; A1)
= DATE (2016;1; A1)
Где A1 содержит номер дня. Это работает, потому что функция ДАТА умеет настраивать значения вне диапазона.
Преобразование даты в месяц и год
= ТЕКСТ(дата; "ггггмм")
= TEXT(дата; "ггггмм")
Чтобы преобразовать нормальную дату Excel в формат ггггмм (например, 9/1/2017> 201709), вы можете использовать функцию ТЕКСТ.
В показанном примере формула в C5:
= ТЕКСТ (B5; "ггггмм")
= TEXT (B5; "ггггмм")
Функция TEКСT применяет заданный числовой формат к числовому значению и возвращает результат в виде текста.
В этом случае предоставляется формат числа «ггггмм», который присоединяется к 4-значному году с 2-значным значением месяца.
Если вы хотите отображать дату только с указанием года и месяца, вы можете просто применить формат пользовательских номеров "ггггмм" к датам. Это заставит Excel отображать год и месяц вместе, но не изменит базовую дату.
Преобразование даты в текст
= ТЕКСТ (дата; формат)
= TEXT (дата; формат)
Даты и время в Excel хранятся в виде серийных номеров и преобразуются в удобочитаемые значения «на лету» с использованием числовых форматов. Когда вы вводите дату в Excel, вы можете применить числовой формат, чтобы отобразить эту дату по своему усмотрению. Аналогичным образом, функция ТЕКСТ позволяет преобразовать дату или время в текст в предпочтительном формате.
Например, если дата 9 января 2000 года введена в ячейку A1, вы можете использовать TEКСТ, чтобы преобразовать эту дату в следующие текстовые строки следующим образом:
= ТЕКСТ(A1; "ммм") // "Янв"
= TEXT (A1; "ммм") // "Янв"
= TEКСТ(A1; "дд/мм/гггг") // "09/01/2012"
= TEXT (A1; "дд/мм/гггг") // "09/01/2012"
= ТЕКСТ(A1; "дд-ммм-гг") // "09-Янв-12"
= TEXT (A1; "дд-ммм-гг") // "09-Янв-12"
Преобразование даты текста дд/мм/гг в мм/дд/гг
= ДАТА(ПРАВСИМВ(A1;2) + 2000; ПСТР(A1;4;2); ЛЕВСИМВ(A1;2))
= DATE(RIGHT(A1;2) + 2000; MID(A1;4;2); LEFT(A1;2))
Чтобы преобразовать даты в текстовом формате дд/мм /гг в истинную дату в формате мм/дд/гг, вы можете использовать формулу, основанную на функции ДАТА. В показанном примере формула в C5:
= ДАТА(ПРАВСИМВ(B5;2) + 2000; ПСТР(B5;4;2); ЛЕВСИМВ (B5;2))
= DATE(RIGHT(A1;2) + 2000; MID(A1;4;2); LEFT(A1;2))
Который преобразует текстовое значение в B5 «29/02/16» в правильную дату Excel.
Ядром этой формулы является функция ДАТА, которая используется для сборки правильного значения даты Excel. Функция ДАТА требует действительных значений года, месяца и дня, поэтому они анализируются из исходной текстовой строки следующим образом:
Значение года извлекается с помощью функции ПРАВСИМВ:
ПРАВСИМВ(B5;2) +2000
RIGHT(B5;2) +2000
ПРАВСИМВ получает по крайней мере 2 символа от исходного значения. Число 2000 добавлено к результату, чтобы создать действительный год. Это число переходит в ДАТА в качестве аргумента год.
Значение месяца извлекается с помощью:
ПСТР(B5;4;2)
MID(B5;4;2)
ПСТР извлекает символы 4-5. Результат переходит в ДАТА в качестве аргумента месяц.
Значение дня извлекается с помощью:
ЛЕВСИМВ(B5;2)
LEFT(B5;2)
ЛЕВСИМВ захватывает последние 2 символа исходного текстового значения, которое переходит в ДАТА в качестве аргумента дня.
Три значения, извлеченные выше, входят в ДАТУ следующим образом:
= ДАТА (2016; "02"; "29")
= DATE (2016; "02"; "29")
Хотя месяц и день предоставляются в виде текста, функция ДАТА автоматически преобразуется в числа и возвращает действительную дату.
Примечание: значение 2016 года автоматически было преобразовано в число при добавлении 2000.
Если исходное текстовое значение содержит дополнительные начальные или конечные символы пробела, вы можете добавить функцию СЖПРОБЕЛЫ для удаления:
= ДАТА(ПРАВСИМВ (СЖПРОБЕЛЫ (A1); 2) + 2000; ПСТР(СЖПРОБЕЛЫ (A1); 4;2); ЛЕВСИМВ(СЖПРОБЕЛЫ (A1); 2))
= DATE(RIGHT (TRIM (A1); 2) + 2000; MID(TRIM (A1); 4;2); LEFT(TRIM (A1); 2))
Преобразование текста в дату
=ДАТА (ЛЕВСИМВ(текст; 4); ПСРТ(текст; 5;2); ПРАВСИМВ(текст; 2))
=DATE (LEFT(текст; 4); ПСРТ(текст; 5;2); RIGHT(текст; 2))
В показанном примере формула в C6:
= ДАТА(ЛЕВСИМВ(B6;4); ПСРТ(B6;5;2); ПРАВСИМВ(B6;2))
= DATE(LEFT(B6;4); ПСРТ(B6;5;2); RIGHT(B6;2))
Эта формула отдельно извлекает значения года, месяца и дня и использует функцию ДАТА, чтобы собрать их в дату 24 октября 2000 года.
Когда вы работаете с данными из другой системы, вы можете использовать текстовые значения, которые представляют даты, но не понимаются как даты в Excel. Например, у вас могут быть такие текстовые значения:
текст (19610412) Дата представления (Апрель 12, 1961)
Excel не будет распознавать эти текстовые значения в качестве даты, поэтому для создания правильной даты вам нужно проанализировать текст в его компонентах (год, месяц, день) и использовать их для создания даты с помощью функции ДАТА.
Функция ДАТА принимает три аргумента: год, месяц и день. ЛЕВСИМВ извлекает самые левые 4 символа и поставляет это в ДАТА в качестве года. Функция ПСРТ извлекает символы 5-6 и поставляет это в ДАТА в качестве месяца, а функция ПРАВСИМВ извлекает самые правые 2 символа и поставляет их в ДАТА в качестве дня. Конечным результатом является правильная дата Excel, которая может быть отформатирована любым способом.
В строке 8 (непризнанный) формат даты дд.мм.гггг и формула в C8:
= ДАТА(ПРАВСИМВ(B8;4); ПСРТ(B8;4;2); ЛЕВСИМВ(B8;2))
= DATE(RIGHT(B8;4); ПСРТ(B8;4;2); LEFT(B8;2))
Иногда встречаются даты в текстовом формате, которые должен распознавать Excel. В этом случае вы могли бы заставить Excel преобразовать текстовые значения в даты, добавив ноль к значению. Когда вы добавите нуль, Excel попытается принудить текстовые значения к числам. Поскольку даты - это всего лишь цифры, этот трюк - отличный способ преобразовать даты в текстовый формат, который действительно должен понимать Excel.
Чтобы преобразовать даты, добавив нуль, попробуйте Специальную вставку:
- Добавить ноль в неиспользуемую ячейку и скопировать в буфер обмена
- Выберите проблемные даты
- Специальная вставка> Значения> Добавить
Чтобы преобразовать даты путем добавления нуля в формулу, используйте:
= A1 + 0
Где A1 содержит непризнанную дату.
Другой способ заставить Excel распознавать даты - использовать текст в столбцах:
Выберите столбец дат, затем попробуйте Дата> Текст в столбах>Исправлено> Конец
Это иногда может исправить все сразу.
Преобразование текста в дату
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь