Как преобразовать дату в текст в Excel: все рабочие методы

Работа с датами в Microsoft Excel — одна из самых частых задач при анализе данных, составлении отчётов или ведении учёта. Но что делать, когда нужно зафиксировать дату в текстовом формате, чтобы она не изменялась при обновлении файла или не воспринималась как числовое значение? Например, при экспорте данных в другие системы, где требуется строка вместо даты, или при создании неизменяемых отметок времени.

Проблема в том, что Excel по умолчанию хранит даты как серийные числа (где `1` = 1 января 1900 года), а отображает их в читаемом виде благодаря формату ячейки. При копировании таких данных в текстовые поля или базы данных часто возникают ошибки: вместо `"01.01.2026"` передаётся число `45287` или дата автоматически преобразуется в текущий формат системы. В этой статье разберём 5 надёжных способов конвертации дат в текст — от простых функций до автоматизации через VBA, а также типичные ошибки и их решения.

Особое внимание уделим нюансам:

  • 🔹 Почему функция ТЕКСТ может возвращать ошибку #ЗНАЧ! при неверном формате
  • 🔹 Как сохранить ведущие нули в днях/месяцах (например, 05.03.2026 вместо 5.3.2026)
  • 🔹 В каких случаях лучше использовать Power Query, а не формулы

Все методы протестированы в Excel 2010–2023 и Microsoft 365, включая веб-версию. Если вы работаете с Google Sheets, majority способов также применимы с минимальными правками.

1. Функция ТЕКСТ: простой способ с настройкой формата

Самый универсальный метод — использование функции =ТЕКСТ(значение; формат). Она преобразует дату в строку согласно заданному шаблону. Например, чтобы получить дату в формате `"ДД.ММ.ГГГГ"`, используйте:

=ТЕКСТ(A1; "дд.мм.гггг")

Где A1 — ячейка с исходной датой. Важно: функция не изменяет исходную ячейку, а создаёт текстовую копию в новой. Это удобно, если нужно сохранить оригинальные данные для дальнейших вычислений.

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

  • 📅 "дд.мм.гг"01.01.24
  • 📅 "дд ммм гггг"01 янв 2026
  • 📅 "дддд, дд ммм"Понедельник, 01 янв
  • 📅 "мм/дд/гг" → американский формат 01/01/24

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

2. Изменение формата ячейки: когда достаточно "обмана" Excel

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

Шаги:

  1. Выделите ячейку(и) с датой.
  2. Нажмите Ctrl + 1 (или правая кнопка → Формат ячеек).
  3. Вкладка Число → выберите Текстовый.
  4. Нажмите ОК.

Предупреждение: После этого вы не сможете использовать данные в формулах дат (например, =ДАТАЗНАЧ() или =ДЕНЬНЕД()). Excel будет воспринимать значение как строку, а не как дату.

Что происходит внутри Excel?

При изменении формата на текстовый Excel не преобразует серийное число в строку. Вместо этого он просто отображает его как текст, но внутреннее значение остаётся числовым. Это видно, если после изменения формата применить функцию =ТИП(A1) — она вернёт 1 (число), а не 2 (текст).

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

3. Формула ДАТАЗНАЧ + ТЕКСТ: для нестандартных форматов

Если ваша дата хранится в нестандартном текстовом формате (например, `"01-янв-2026"` или `"2026/01/01"`), сначала преобразуйте её в серийное число с помощью =ДАТАЗНАЧ(), а затем примените ТЕКСТ:

=ТЕКСТ(ДАТАЗНАЧ(A1); "дд.мм.гггг")

Пример: Если в A1 записано `"01/01/2026"` (как текст), формула вернёт `"01.01.2026"` в нужном формате.

Обратите внимание: ДАТАЗНАЧ работает только с форматами, распознаваемыми Excel как даты. Например, она не сработает с `"1 января 2026"` или `"01.01"` (без года).

📊 Какой формат даты вы используете чаще всего?
ДД.ММ.ГГГГ
ММ/ДД/ГГГГ
ДД МММ ГГГГ (01 янв 2026)
ISO 8601 (2026-01-01)
Другой

4. Power Query: преобразование дат в текст при импорте данных

Если вы работаете с большими наборами данных (например, импортируете из CSV или баз данных), удобнее использовать Power Query. Этот инструмент позволяет преобразовать даты в текст на этапе загрузки, не изменяя исходный файл.

Инструкция:

  1. Перейдите на вкладку ДанныеПолучить данные → выберите источник.
  2. В открывшемся редакторе Power Query выделите столбец с датой.
  3. На вкладке Преобразование выберите Формат → Дата/время → В текст.
  4. Укажите нужный формат (например, ДД.ММ.ГГГГ).
  5. Нажмите Закрыть и загрузить.

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

Пример кода на языке M (для ручного редактирования в Power Query):

let

Источник = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],

ПреобразованныйТип = Table.TransformColumnTypes(Источник,{{"Дата", type text}}),

ДобавленНастраиваемыйСтолбец = Table.AddColumn(ПреобразованныйТип, "ДатаТекст", each Text.From([Дата], "ru-RU"), type text)

in

ДобавленНастраиваемыйСтолбец

5. VBA-макрос: автоматизация для больших файлов

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

Sub ConvertDatesToText()

Dim cell As Range

For Each cell In Selection

If IsDate(cell.Value) Then

cell.NumberFormat = "@" ' Текстовый формат

cell.Value = Format(cell.Value, "dd.mm.yyyy")

End If

Next cell

End Sub

Как использовать:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Выделите ячейки с датами в Excel.
  4. Запустите макрос (F5 или через Макросы в ленте Разработчик).

Важно: Макрос безвозвратно заменяет исходные данные на текстовые значения. Создайте резервную копию файла перед запуском!

Выделить только ячейки с датами|Сохранить файл в формате .xlsm (с поддержкой макросов)|Проверка на наличие скрытых символов в данных|Резервное копирование файла-->

Сравнение методов: какой выбрать?

Выбор способа зависит от задачи. В таблице ниже — сравнение всех методов по ключевым параметрам:

Метод Сохраняет исходную дату Подходит для больших данных Требует знания VBA Работает в Excel Online
Функция ТЕКСТ Да Да Нет Да
Формат ячейки → Текстовый Нет (визуально) Да Нет Да
ДАТАЗНАЧ + ТЕКСТ Да Да Нет Да
Power Query Да Да (оптимально) Нет Частично
VBA-макрос Нет Да Да Нет

Типичные ошибки и их решения

Даже опытные пользователи сталкиваются с проблемами при преобразовании дат. Разберём самые частые:

⚠️ Внимание: Если после применения функции ТЕКСТ вы видите в ячейке число вместо даты (например, 45287), проверьте формат исходной ячейки. Скорее всего, Excel воспринимает её не как дату, а как число. Используйте =ДАТАЗНАЧ() для предварительного преобразования.

Другие распространённые ошибки:

  • 🚫 #ЗНАЧ! в функции ТЕКСТ → Проверьте, что в ячейке действительно дата (используйте =ЕЧИСЛО() или =ЕДАТА() для диагностики).
  • 🚫 Пропадают ведущие нули (например, 1.1.2026 вместо 01.01.2026) → Укажите формат с двумя символами для дня/месяца: "дд.мм.гггг".
  • 🚫 Дата отображается на английском (например, Jan вместо янв) → Измените языковые настройки Excel или используйте локализованный формат: "дд ммм гггг;@".

Если вы импортируете данные из внешних источников (например, или SQL), даты могут приходить в виде строк с нестандартными разделителями (например, `"01-01-2026"`). В этом случае используйте комбинацию функций:

=ТЕКСТ(ДАТАЗНАЧ(ПОДСТАВИТЬ(A1; "-"; ".")); "дд.мм.гггг")

FAQ: Ответы на частые вопросы

Можно ли вернуть текстовую дату обратно в формат даты?

Да, но только если текст соответствует распознаваемому Excel формату. Используйте функцию =ДАТАЗНАЧ(). Например, для текста "01.01.2026" в ячейке A1:

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

Если формат нестандартный (например, "1 января 2026"), потребуется парсинг через Power Query или VBA.

Почему после копирования текстовой даты в Word она опять становится числом?

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

  1. Скопируйте ячейку.
  2. Вставьте в Word через Специальная вставка → Текст.
  3. Или предварительно преобразуйте дату в текст с помощью =ТЕКСТ().
Как преобразовать время вместе с датой в текст?

Используйте расширенный формат в функции ТЕКСТ. Примеры:

  • =ТЕКСТ(A1; "дд.мм.гггг чч:мм")01.01.2026 14:30
  • =ТЕКСТ(A1; "дд.мм.гггг чч:мм:сс") → с секундами
  • =ТЕКСТ(A1; "[ч]:мм") → продолжительность в часах (например, 26:15 для 26 часов 15 минут)
Работает ли функция ТЕКСТ в Google Sheets?

Да, но с другим названием — =TEXT(). Синтаксис идентичен:

=TEXT(A1; "dd.mm.yyyy")

Обратите внимание: в Google Sheets серийные числа дат начинаются с 1 января 1899 года (а не 1900, как в Excel), но на результат функции TEXT это не влияет.

Можно ли автоматически обновлять текстовые даты?

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

=ТЕКСТ(СЕГОДНЯ(); "дд.мм.гггг")

Но помните: это формула, а не текст. Для настоящей текстовой фиксации потребуется VBA-макрос с событием Workbook_Open.