Как выделить сегодняшнюю дату в Excel: от простых правил до автоматических скриптов

Почему выделение текущей даты упрощает работу с таблицами

Работаете с отчётами, где критично отслеживать актуальные сроки? Или ведёте календарь задач, где сегодняшние дела должны бросаться в глаза? Выделение текущей даты в Microsoft Excel или Google Таблицах решает эти задачи за секунды. Без ручного поиска, без риска пропустить важное.

Секрет в том, что Excel умеет автоматически обновлять форматирование при открытии файла. То есть сегодняшняя дата будет подсвечена всегда — хоть через час, хоть через месяц. Это избавляет от необходимости вручную пролистывать сотни строк или забывать обновить фильтры. А если в таблице данные за несколько лет, автоматическое выделение сэкономит часы работы.

Но как это сделать правильно? Способов масса: от элементарного условного форматирования до написания VBA-скриптов для сложных сценариев. Мы разберём все варианты — с примерами, нюансами и лайфхаками для разных версий Excel (включая Excel 365 и Excel 2019).

📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

Способ 1: Условное форматирование по формуле (самый надёжный метод)

Это универсальный метод, который работает во всех версиях Excel (начиная с Excel 2007) и даже в Google Таблицах. Суть: вы создаёте правило, которое проверяет, равна ли дата в ячейке сегодняшней, и если да — применяет заданный формат.

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

  1. Выделите диапазон с датами (например, A1:A100).
  2. Перейдите на вкладку Главная → Условное форматирование → Создать правило.
  3. Выберите тип правила Использовать формулу для определения форматируемых ячеек.
  4. В поле формулы введите:
    =A1=TODAY()

    (где A1 — первая ячейка выделенного диапазона).

  5. Нажмите Формат, выберите цвет заливки (например, жёлтый) и нажмите ОК.

Важный нюанс: если ваши даты хранятся как текст (например, после импорта из CSV), формула не сработает. Сначала преобразуйте их в формат даты с помощью функции ДАТАЗНАЧ или инструмента Текст по столбцам.

Данные в ячейках — это именно даты, а не текст?|Диапазон выделен без пустых строк?|Формат ячеек — "Дата" (а не "Общий")?|В формуле указана правильная первая ячейка диапазона?-->

Способ 2: Быстрое правило "Дата" (для новичков)

Если вам не нужны сложные настройки, Excel предлагает готовое правило для работы с датами. Оно менее гибкое, чем формула, но зато настраивается в два клика.

Инструкция:

  1. Выделите диапазон с датами.
  2. Перейдите в Главная → Условное форматирование → Правила выделения ячеек → Дата.
  3. В выпадающем списке выберите Сегодня.
  4. Укажите формат (например, светло-красная заливка с тёмно-красным текстом) и нажмите ОК.

Минус этого способа: правило не обновляется автоматически при открытии файла (в отличие от формулы). Чтобы обновить подсветку, нужно вручную нажать Главная → Условное форматирование → Обновить правила.

⚠️ Внимание: В Google Таблицах этого готового правила нет — там работает только способ с формулой (=A1=TODAY()).

Способ 3: Выделение дат в динамическом диапазоне (для таблиц с фильтрами)

Если ваша таблица использует Фильтр или Сводную таблицу, обычное условное форматирование может "сломаться" при изменении видимых строк. Решение — привязать правило к динамическому диапазону.

Создайте именованный диапазон:

  1. Выделите столбец с датами (например, A:A).
  2. Перейдите в Формулы → Присвоить имя.
  3. Введите имя (например, ДатаЗадач) и нажмите ОК.
  4. Создайте правило условного форматирования для этого имени с формулой =ДатаЗадач=TODAY().

Теперь подсветка будет работать даже если вы отфильтруете таблицу по другому критерию (например, по статусу задачи).

Способ 4: VBA-скрипт для автоматического обновления (для продвинутых)

Если вам нужно не только выделять сегодняшнюю дату, но и автоматически сортировать строки или отправлять уведомления, поможет макрос. Например, этот скрипт будет выделять текущую дату жёлтым и переносить соответствующие строки вверх таблицы:

Sub HighlightToday()

Dim rng As Range

Dim cell As Range

Set rng = ActiveSheet.UsedRange.Columns(1) ' Первый столбец с датами

For Each cell In rng

If IsDate(cell.Value) Then

If cell.Value = Date Then

cell.EntireRow.Interior.Color = RGB(255, 255, 0) ' Жёлтый

cell.EntireRow.Cut

Rows(1).Insert Shift:=xlDown ' Перенос строки вверх

End If

End If

Next cell

End Sub

Чтобы макрос срабатывал при каждом открытии файла:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. В окне Project дважды кликните на ThisWorkbook.
  3. Вставьте код:
    Private Sub Workbook_Open()
    

    HighlightToday

    End Sub

⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm (с поддержкой макросов). Если вы сохраните файл как .xlsx, код не выполнится.

Способ 5: Выделение дат в Google Таблицах (отличия от Excel)

В Google Таблицах логика такая же, но есть нюансы:

  • 🔹 Формула для условного форматирования: =A1=TODAY() (аналогично Excel).
  • 🔹 Нет готового правила "Дата → Сегодня" — только формулы.
  • 🔹 Цвета обновляются автоматически при открытии файла (в отличие от Excel, где иногда нужно обновить вручную).
  • 🔹 Можно использовать APPSCRIPT для расширенной автоматизации (аналог VBA).

Пример скрипта для Google Таблиц, который выделит сегодняшнюю дату и отправит email:

function highlightToday() {

var sheet = SpreadsheetApp.getActiveSheet();

var range = sheet.getDataRange();

var today = new Date();

today.setHours(0, 0, 0, 0);

for (var i = 1; i <= range.getNumRows(); i++) {

var cell = range.getCell(i, 1); // Первый столбец

var cellDate = cell.getValue();

if (cellDate instanceof Date && cellDate.setHours(0, 0, 0, 0) == today.getTime()) {

cell.setBackground('#FFFF00'); // Жёлтый

// Здесь можно добавить отправку email

}

}

}

Таблица сравнения способов выделения дат

Способ Сложность Автообновление Работает в Excel Работает в Google Таблицах Дополнительные возможности
Условное форматирование по формуле Низкая Да 2007—2026 Да Гибкие условия, несколько цветов
Готовое правило "Дата → Сегодня" Очень низкая Нет (нужно обновлять) 2010—2026 Нет Быстро, но ограничено
Динамический именованный диапазон Средняя Да 2010—2026 Да Работает с фильтрами
VBA-скрипт Высокая Да 2010—2026 (xlsm) Нет Сортировка, уведомления, сложная логика
AppScript (Google Таблицы) Высокая Да Нет Да Интеграция с Gmail, Календарём

Типичные ошибки и как их избежать

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

  • 🗓️ Дата в формате текста: Если ячейка содержит "15.05.2026" (как текст), а не дату, формула =A1=TODAY() не сработает. Решение: используйте ДАТАЗНАЧ(A1)=TODAY().
  • 🕒 Время в дате: Функция TODAY() возвращает дату без времени, а в ваших данных может быть 15.05.2026 14:30. Решение: обрежьте время с помощью =INT(A1)=TODAY().
  • 🔄 Не обновляется форматирование: В Excel иногда нужно вручную обновить правила (клавиша F9 или Главная → Условное форматирование → Обновить правила).
  • 📊 Конфликт правил: Если у вас несколько правил условного форматирования, они могут перекрывать друг друга. Решение: проверьте порядок правил в менеджере (Главная → Условное форматирование → Управление правилами).
Почему формула =A1=TODAY() не работает с текстом?

Функция TODAY() возвращает числовое значение даты (например, 45432 для 15.05.2026), а текст "15.05.2026" — это строка символов. Excel не может сравнить число и текст напрямую. Поэтому нужно сначала преобразовать текст в дату с помощью ДАТАЗНАЧ или изменить формат ячейки.

FAQ: Частые вопросы о выделении дат в Excel

Можно ли выделить не только сегодняшнюю дату, но и вчерашнюю/завтрашнюю?

Да! Используйте формулы:

  • Вчера: =A1=TODAY()-1
  • Завтра: =A1=TODAY()+1
  • Послезавтра: =A1=TODAY()+2

Можно создать отдельные правила для каждого условия с разными цветами.

Почему после сохранения файла подсветка сбивается?

Это происходит, если:

  1. Файл сохранён в формате .xls (старый формат Excel 97-2003). Решение: сохраните как .xlsx или .xlsm.
  2. В настройках Excel отключено автоматическое обновление связей. Решение: Файл → Параметры → Формулы → Вычисления → Автоматически.
  3. Дата в ячейке хранится как текст. Решение: преобразуйте её в формат даты.
Как выделить сегодняшнюю дату в сводной таблице?

Сводные таблицы не поддерживают условное форматирование напрямую. Обходные пути:

  1. Добавьте в исходные данные столбец с формулой =ЕСЛИ(A1=TODAY();"Сегодня";"") и используйте его как фильтр.
  2. Преобразуйте сводную таблицу в обычный диапазон (Анализ → Преобразовать в диапазон) и примените условное форматирование.
Можно ли выделить дату не только цветом, но и значком?

Да! В Excel 2013 и новее есть наборы значков:

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

Используйте формулу с проверкой дня недели:

=И(A1=TODAY(); ДЕНЬНЕД(A1;2)<6)

Здесь ДЕНЬНЕД(A1;2)<6 проверяет, что день недели не суббота (6) или воскресенье (7).