Дата в ячейке Microsoft Excel — это не просто текст, а специальный формат данных, который часто создаёт проблемы при обработке таблиц. Вы когда-нибудь пытались удалить дату из столбца, но вместо чистого текста получали странные числа вроде 44197? Или после копирования данных из внешних источников обнаруживали, что числа автоматически преобразовались в даты? Это типичные «подводные камни» работы с форматом даты в Excel.
Проблема усложняется тем, что Excel хранит даты как последовательные числа (где 1 — это 1 января 1900 года), а отображает их в привычном виде благодаря формату ячейки. Поэтому простое удаление символов или замена через Найти и заменить часто не срабатывает. В этой статье мы разберём 7 проверенных способов удалить дату из ячейки — от элементарных до малоизвестных приёмов для опытных пользователей.
Вы узнаете, как:
- 🔹 Преобразовать дату в текст без потери данных
- 🔹 Извлечь только время из ячейки с датой и временем
- 🔹 Удалить дату из смешанных данных (например, "25.05.2023 Отчёт")
- 🔹 Автоматизировать процесс для тысяч строк
Все методы протестированы на Excel 2013–2023 и Microsoft 365, включая веб-версию. Если вы работаете с Google Таблицами, большинство способов также применимы с минимальными изменениями.
1. Самый быстрый способ: изменить формат ячейки
Если дата в ячейке отображается как 25.05.2023, но вам нужно показать её как число (например, для расчётов), достаточно сменить формат. Это не удалит дату как таковую, но позволит работать с её числовым эквивалентом.
Как сделать:
- Выделите ячейки с датами.
- Нажмите правой кнопкой →
Формат ячеек(илиCtrl+1). - Вкладка
Число→ выберитеОбщийилиЧисловой.
Результат: вместо 25.05.2023 вы увидите число вроде 44197 (количество дней с 1.01.1900). Чтобы вернуть дату обратно, снова поменяйте формат на Дата.
⚠️ Внимание: Этот метод не подходит, если вам нужно полностью удалить дату и оставить только текст или часть данных. Он лишь меняет визуальное отображение, не затрагивая содержимое ячейки.
2. Преобразовать дату в текст с помощью формул
Когда требуется сохранить дату как текст (например, для дальнейшего использования в других формулах или экспорта), используйте функции ТЕКСТ или ДАТАЗНАЧ.
Примеры формул:
| Цель | Формула | Пример результата |
|---|---|---|
| Дата → текст в формате "ДД.ММ.ГГГГ" | =ТЕКСТ(A1; "дд.мм.гггг") |
25.05.2023 (как текст) |
| Извлечь день недели | =ТЕКСТ(A1; "дддд") |
четверг |
| Убрать год, оставить "ДД.ММ" | =ТЕКСТ(A1; "дд.мм") |
25.05 |
| Текст → дата (обратное преобразование) | =ДАТАЗНАЧ("25.05.2023") |
44197 (числовой формат) |
После применения формулы скопируйте результаты и вставьте как Значения (правая кнопка → Специальная вставка → Значения), чтобы избавиться от зависимостей.
3. Удалить дату из смешанных данных (текст + дата)
Частая проблема: в ячейке содержится текст с датой, например "Отчёт от 25.05.2023", и нужно оставить только текст. Здесь поможет комбинация функций ПОИСК, ЛЕВСИМВ и ПСТР.
Универсальная формула для извлечения текста до даты:
=ЛЕВСИМВ(A1; ПОИСК(" "; A1 & " " & МИН(ЕСЛИОШИБКА(НАЙТИ({0;1;2;3;4;5;6;7;8;9}; A1 & "0123456789"); ""))) - 1)
Для извлечения текста после даты:
=ПСТР(A1; ПОИСК(" "; A1 & " " & МИН(ЕСЛИОШИБКА(НАЙТИ({0;1;2;3;4;5;6;7;8;9}; A1 & "0123456789"); ""))) + 10; 100)
Эти формулы ищут первую цифру в ячейке и обрезают текст до/после неё. Для упрощения можно использовать Power Query (см. раздел 6).
Как работает формула?
Функция НАЙТИ ищет позицию первой цифры (0–9) в тексте. ПОИСК(" ") добавляет пробел для корректной работы с текстами без пробелов. ЛЕВСИМВ и ПСТР обрезают строку по найденной позиции.
4. Разделить дату и время на отдельные ячейки
Если в ячейке содержится и дата, и время (например, 25.05.2023 14:30), их можно разделить с помощью:
- 🔹 Функций
ДЕНЬ,МЕСЯЦ,ГОД:=ДЕНЬ(A1) // вернёт 25=МЕСЯЦ(A1) // вернёт 5
=ГОД(A1) // вернёт 2023
- 🔹 Текстового форматирования:
=ТЕКСТ(A1; "чч:мм") // вернёт 14:30 - 🔹 Инструмента "Текст по столбцам":
- Выделите столбец с данными.
Данные → Текст по столбцам → С разделителями.- Укажите разделитель
Пробел.
Для автоматизации используйте макрос:
Sub SplitDateTime()
Dim rng As Range
For Each rng In Selection
If IsDate(rng.Value) Then
rng.Offset(0, 1).Value = Format(rng.Value, "dd.mm.yyyy")
rng.Offset(0, 2).Value = Format(rng.Value, "hh:mm:ss")
End If
Next rng
End Sub
⚠️ Внимание: При разделении даты и времени через "Текст по столбцам" Excel может неправильно интерпретировать данные, если региональные настройки отличаются от формата исходных данных. Всегда проверяйте результат!
5. Удалить дату с помощью Power Query (для больших таблиц)
Power Query — это инструмент для обработки данных, встроенный в Excel 2016+ и Microsoft 365. Он идеален для очистки тысяч строк.
Пошаговая инструкция:
- Выделите таблицу →
Данные → Из таблицы/диапазона(илиПолучить данные → Из таблицы). - В редакторе Power Query выделите столбец с датами.
- Нажмите
Преобразовать → Формат → Дата(если Excel не распознал формат автоматически). - Для удаления даты:
- 🔹 Оставить только время:
Преобразовать → Извлечь → Время. - 🔹 Преобразовать в текст:
Преобразовать → Формат → Текст.
- 🔹 Оставить только время:
Закрыть и загрузить.Преимущества Power Query:
- 🔹 Обрабатывает миллионы строк без замедления.
- 🔹 Сохраняет шаги очистки для повторного использования.
- 🔹 Позволяет объединять данные из нескольких источников.
☑️ Подготовка данных в Power Query
6. Макрос для удаления дат из выделенного диапазона
Если вам регулярно приходится удалять даты, автоматизируйте процесс с помощью 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
Как использовать:
- Нажмите
Alt+F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Выделите ячейки с датами → запустите макрос (
F5).
Для удаления только даты из ячеек с датой и временем используйте этот код:
Sub RemoveDateKeepTime()
Dim cell As Range
For Each cell In Selection
If IsDate(cell.Value) Then
cell.Value = Format(cell.Value, "hh:mm:ss")
End If
Next cell
End Sub
⚠️ Внимание: Перед запуском макроса обязательно сохраните файл в формате .xlsm (с поддержкой макросов), иначе код не будет работать!
7. Альтернативные способы: от "Найти и заменить" до онлайн-инструментов
Если предыдущие методы не подходят, попробуйте:
- 🔹 "Найти и заменить" (для простых случаев):
Ctrl+H→ в поле "Найти" введите*.(точка после любого символа).- В поле "Заменить на" оставьте пустым.
- Нажмите
Заменить всё.
⚠️ Работает только если дата в формате ДД.ММ.ГГГГ и нет других точек в тексте.
- Сохраните файл как
.csv. - Откройте в Notepad++ или VS Code.
- Используйте регулярые выражения для замены (например,
\d{2}\.\d{2}\.\d{4}→ удалить).
Для сложных случаев (например, даты в разных форматах) комбинируйте методы. Например:
- Сначала используйте
Текст по столбцамдля разделения данных. - Затем применяйте формулы для извлечения нужных частей.
FAQ: Частые вопросы по удалению дат в Excel
❓ Почему после удаления даты остаётся число вроде 44197?
Это внутреннее представление даты в Excel. Число отображает количество дней с 1 января 1900 года. Чтобы увидеть нормальную дату, поменяйте формат ячейки на Дата.
❓ Как убрать дату из ячейки, но оставить время?
Используйте формулу =ТЕКСТ(A1; "чч:мм:сс") или в Power Query выберите Извлечь → Время.
❓ Можно ли удалить дату из защищённого листа?
Нет, сначала нужно снять защиту (Рецензирование → Снять защиту листа). Если вы не знаете пароль, используйте VBA-скрипт для сброса защиты (требуются права администратора).
❓ Почему функция ДАТАЗНАЧ не работает с моей датой?
Вероятно, формат даты не соответствует региональным настройкам Excel. Например, в русскоязычной версии разделителем должен быть . (точка), а не / (слеш). Проверьте настройки в Файл → Параметры → Язык.
❓ Как удалить дату из ячейки, если она часть текста (например, "Заказ 25.05.2023 №123")?
Используйте формулы с ПОИСК и ПСТР (см. раздел 3) или регулярные выражения в Power Query (Преобразовать → Заменить значения → Расширенный режим).