Как убрать секунды из времени в Excel: от формата до VBA

Проблема с секундами в данных Excel: когда это мешает

Вы загрузили данные из внешней системы, скопировали время из другого источника или получили отчёт с точными временными метками — и теперь в каждой ячейке красуются ненужные секунды: 14:30:45 вместо аккуратного 14:30. Лишние нули или случайные значения секунд не только портят визуальное восприятие таблицы, но и усложняют анализ. Например, при группировке данных по часам и минутам Excel будет воспринимать 14:30:00 и 14:30:01 как разные временные отметки — хотя для бизнес-задач эта разница часто несущественна.

В этой статье разберём 5 рабочих способов удалить секунды из времени в Excel — от простого форматирования до автоматизации через Power Query и VBA. Каждый метод подходит для разных сценариев: однократной правки, регулярной обработки больших массивов или интеграции в сложные модели. Выбирайте подходящий вариант в зависимости от объёма данных и вашего уровня владения Excel.

⚠️ Важно: перед массовым изменением данных сделайте резервную копию файла — особенно если работаете с формулами или макросами. Некоторые методы (например, замена через Найти и заменить) могут исказить исходные значения, если в ячейках хранятся не только временные данные, но и текст.

Способ 1: Форматирование ячеек без изменения данных

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

Как это сделать:

  1. Выделите диапазон ячеек с временем (например, A1:A100).
  2. Нажмите правой кнопкой мыши и выберите Формат ячеек (или используйте сочетание Ctrl+1).
  3. В окне форматирования перейдите на вкладку Число → категория Время.
  4. Выберите формат 13:30 (без секунд) или создайте свой формат через Все форматы, введя ч:мм.

Плюсы: данные остаются неизменными, метод работает мгновенно даже для тысяч строк.

Минусы: секунды сохраняются в фоне и могут проявиться при экспорте или копировании в другие системы.

Способ 2: Функции ОКРУГЛ и ЦЕЛОЕ для математического округления

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

Две ключевые функции:

  • 📌 =ОКРУГЛ(A1*1440;0)/1440 — округляет время до ближайшей минуты (1440 = количество минут в сутках).
  • 📌 =ЦЕЛОЕ(A1*1440)/1440 — обрезает секунды без округления (например, 14:30:59 станет 14:30:00).

Пример использования:

Исходное время (A1)Формула с ОКРУГЛФормула с ЦЕЛОЕ
14:30:2914:30:0014:30:00
14:30:3014:31:0014:30:00
23:59:5900:00:0023:59:00

⚠️ Внимание: если в ячейке хранится дата и время одновременно (например, 15.05.2023 14:30:45), формулы сохранят только временную часть. Чтобы оставить дату, используйте:

=ЦЕЛОЕ(A1) + ОКРУГЛ((A1-ЦЕЛОЕ(A1))*1440;0)/1440

Выделите столбец для результата|Проверьте, что исходные ячейки имеют формат "Время" или "Дата"|Скопируйте формулу вниз с помощью маркера автозаполнения|При необходимости замените исходные данные через "Копировать → Специальная вставка → Значения"-->

Способ 3: Текстовые функции ЛЕВСИМВ и ПСТР

Если время хранится как текст (например, после импорта из CSV), стандартные функции времени не сработают. В этом случае поможет обрезка строки:

Формула для формата чч:мм:сс:

=ЛЕВСИМВ(A1;5)

Для формата чч:мм:сс.мс (с миллисекундами):

=ПСТР(A1;1;8)

⚠️ Внимание: после обрезки текстовое время станет нераспознаваемым для функций Excel (например, нельзя будет вычитать временные интервалы). Чтобы преобразовать результат обратно в формат времени, используйте:

=ВРЕМЗНАЧ(ЛЕВСИМВ(A1;5))
📊 Как часто вам приходится очищать секунды в Excel?
Ежедневно
Раз в неделю
Редко, по необходимости
Никогда не сталкивался

Способ 4: Power Query для массовой обработки

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

Пошаговая инструкция:

  1. Выделите исходную таблицу и нажмите Данные → Из таблицы/диапазона (в Excel 2016+).
  2. В редакторе Power Query выделите столбец с временем.
  3. Перейдите на вкладку ПреобразоватьФормат → Дата/время.
  4. Выберите Время (если нужно отделить от даты) или создайте пользовательский столбец с формулой:
= Time.From(#datetime(1900, 1, 1, [ВашСтолбец].Hour, [ВашСтолбец].Minute, 0))

🔹 Преимущество: сценарий сохраняется и обновляется при изменении исходных данных (кнопка Обновить все).

🔹 Недостаток: требует Excel 2016 или новее (в Excel 2010-2013 Power Query устанавливается как надстройка).

Как проверить версию Power Query?

Откройте Файл → Учетная запись → О программе Excel. В строке "Версия" ищите упоминание Power Query или Get & Transform. В Excel 2016+ инструмент встроен, в 2010-2013 требуется скачать надстройку с сайта Microsoft.

Способ 5: Макрос VBA для автоматизации

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

Код для удаления секунд в выделенном диапазоне:

Sub RemoveSeconds()

Dim cell As Range

For Each cell In Selection

If IsDate(cell.Value) Then

cell.Value = TimeSerial(Hour(cell.Value), Minute(cell.Value), 0)

End If

Next cell

End Sub

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

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

⚠️ Внимание: макрос безвозвратно изменяет исходные данные. Перед запуском сохраните файл или работайте с копией. Также убедитесь, что в выделенном диапазоне нет текстовых ячеек — они прервут выполнение скрипта.

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

Выбор способа зависит от объёма данных, частоты задачи и необходимости сохранения секунд в фоне. Ниже таблица для быстрого принятия решения:

МетодСохраняет секунды в данныхТребует формулПодходит для больших массивовАвтоматизация
ФорматированиеДаНетДаНет
Функции ОКРУГЛ/ЦЕЛОЕНетДаДаЧастично (копирование значений)
Текстовые функцииНетДаДаНет
Power QueryНетНетДаДа
VBA-макросНетНетДаДа

💡 Критическая деталь: если вы работаете с временными метками из систем аналитики (например, Google Analytics или 1С), удаление секунд может исказить данные при сводке по минутам. В таких случаях лучше использовать Форматирование или создавать отдельный столбец с округлёнными значениями.

Частые ошибки и как их избежать

При удалении секунд пользователи часто сталкиваются с неожиданными проблемами. Вот типичные сценарии и решения:

  • Формулы возвращают ошибку #ЗНАЧ!: проверьте, что исходные ячейки имеют формат Время или Дата. Используйте =ЕЧИСЛО(A1) для диагностики.
  • После обрезки времени появляется дата 01.01.1900: это означает, что Excel интерпретирует текст как дату. Примените формат Время к результирующим ячейкам.
  • Макрос не работает: убедитесь, что в настройках безопасности разрешены макросы (Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов).
  • Power Query не распознаёт время: перед преобразованием измените тип данных столбца на Дата/время через контекстное меню.

🔧 Совет для сложных случаев: если время хранится в нестандартном формате (например, 14h30m45s), используйте комбинацию функций ПОИСК, ПСТР и ВРЕМЗНАЧ для парсинга:

=ВРЕМЗНАЧ(0; ПСТР(A1; ПОИСК("h";A1)-2; 2); 0)

FAQ: Ответы на популярные вопросы

Можно ли убрать секунды при импорте данных из CSV?

Да, используйте Power Query (см. Способ 4). При импорте выберите столбец с временем, измените его тип на Дата/время, а затем примените преобразование для удаления секунд. Альтернативно — импортируйте данные как есть, а затем используйте формулы в отдельном столбце.

Почему после удаления секунд графики в Excel показывают неверные данные?

Скорее всего, на оси графика установлен формат с секундами, а данные уже очищены. Кликните правой кнопкой по оси времени → Формат оси → измените формат на ч:мм. Также проверьте, что в легенде графика используются те же данные, что и в таблице.

Как убрать секунды в Google Таблицах?

Аналогично Excel: используйте форматирование (Формат → Числа → Время) или формулы =ОКРУГЛ(A1*1440;0)/1440. В Google Таблицах также есть функция =ЧАСМИН(A1), которая автоматически округляет до минут.

Можно ли вернуть секунды после их удаления?

Если вы использовали Форматирование (Способ 1), секунды сохранены в фоне — просто измените формат обратно. Если применяли формулы или макросы, восстановить секунды можно только из резервной копии или исходного источника данных.

Почему функция ЦЕЛОЕ не работает с моими данными?

Вероятные причины:

  • Ячейки содержат текст, а не время (проверьте с помощью =ТИП(A1) — должно вернуть 5 для даты/времени).
  • Время хранится в формате UNIX_timestamp (количество секунд с 1970 года). Используйте =ЦЕЛОЕ(A1/60)/60/24 для преобразования.
  • Включен режим вычислений вручную (проверьте на вкладке Формулы).