Как сравнить два столбца с датами в Excel: формулы, условное форматирование и Power Query

Работа с датами в Microsoft Excel — одна из самых востребованных задач среди аналитиков, бухгалтеров и менеджеров проектов. Сравнение двух столбцов с датами может понадобиться для выявления расхождений в отчётности, контроля сроков выполнения задач или поиска дубликатов в больших массивах данных. Однако даже опытные пользователи часто сталкиваются с проблемами: почему формула возвращает #ЗНАЧ!, как игнорировать время при сравнении или почему даты в формате "дд.мм.гггг" suddenly становятся текстом?

В этой статье мы разберём 5 проверенных методов сравнения дат — от элементарных формул до продвинутых инструментов вроде Power Query. Вы узнаете, как найти совпадающие даты, выделить просроченные задачи, а также избежать типичных ошибок при работе с временными метками. Особое внимание уделим нюансам форматирования, которые ломают 80% решений из интернета.

Если вам нужно просто проверить, равны ли две даты, или требуется сложный анализ с учётом рабочих дней — здесь найдётся решение для вашей задачи. Все примеры протестированы в Excel 2019-2023 и Microsoft 365, но majority методов работают и в Google Таблицах.

1. Базовое сравнение дат: операторы и простые формулы

Начнём с самого очевидного — прямого сравнения дат с помощью логических операторов. Этот метод подходит, если вам нужно проверить равенство дат или определить, какая из них раньше/позже.

Допустим, у вас есть два столбца: A2:A100 (плановые даты) и B2:B100 (фактические даты). Чтобы сравнить их, введите в ячейку C2 одну из формул:

  • 🔹 Проверка на равенство: =A2=B2 → вернёт ИСТИНА, если даты совпадают.
  • 🔹 Сравнение "больше/меньше": =A2>B2 → покажет, опоздали ли вы с выполнением задачи.
  • 🔹 Игнорирование времени: =ЦЕЛОЕ(A2)=ЦЕЛОЕ(B2) → сравнивает только даты без учёта часов и минут.

Важный момент: Excel хранит даты как числа, где 1 — это 01.01.1900. Поэтому формула =A2-B2 вернёт разницу в днях между датами. Если результат положительный — дата в A2 позже, чем в B2.

⚠️ Внимание: Если формула возвращает #ЗНАЧ!, проверьте формат ячеек. Часто даты ошибочно импортируются как текст. Чтобы исправить, выделите столбец → Главная → Формат → Формат ячеек → Дата.

Для визуального контроля добавьте условное форматирование:

  1. Выделите диапазон с датами (например, B2:B100).
  2. Перейдите в Главная → Условное форматирование → Создать правило.
  3. Выберите Использовать формулу... и введите =B2>A2 (для просроченных задач).
  4. Задайте красный цвет заполнения и нажмите ОК.
📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Редко
Никогда

2. Поиск совпадений и дубликатов между столбцами

Если вам нужно найти общие даты в двух столбцах (например, пересечение списков событий), используйте функцию ПОИСКПОЗ или СЧЁТЕСЛИ.

Пример: в столбце A — даты встреч, в столбце B — даты оплат. Чтобы проверить, есть ли оплата для каждой встречи, введите в C2:

=ЕСЛИ(СЧЁТЕСЛИ($B$2:$B$100; A2)>0; "Есть оплата"; "Нет оплаты")

Для поиска дубликатов внутри одного столбца (например, повторяющихся дат в журнале событий) подойдёт формула:

=ЕСЛИ(СЧЁТЕСЛИ($A$2:A2; A2)>1; "Дубликат"; "")

Если нужно выделить уникальные даты, которые есть только в одном из столбцов, комбинируйте ПОИСКПОЗ с ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(ПОИСКПОЗ(A2; $B$2:$B$100; 0); "Уникально в A"; "Есть в B")

Убедиться, что оба столбца отформатированы как "Дата"|Проверить отсутствие пустых ячеек|Удалить лишние пробелы функцией =СЖПРОБЕЛЫ()|Преобразовать текстовые даты в числовой формат-->

3. Условное форматирование для визуального анализа

Когда нужно быстро выявить расхождения между двумя столбцами дат, условное форматирование становится незаменимым инструментом. Например, вы можете:

  • 🔴 Выделить красным даты в столбце B, которые позже, чем в A (просрочка).
  • 🟢 Пометить зелёным совпадающие даты.
  • 🟡 Подсветить жёлтым даты, разница между которыми превышает 5 дней.

Инструкция для создания правила "просроченных задач":

  1. Выделите диапазон B2:B100 (фактические даты).
  2. Перейдите в Условное форматирование → Новое правило → Использовать формулу....
  3. Введите формулу: =И($A2<>""; $B2>$A2) (игнорирует пустые ячейки в A).
  4. Выберите красный цвет заполнения и нажмите ОК.

Для подсветки разницы в днях используйте формулу:

=И($A2<>""; $B2<>""; ABS($B2-$A2)>5)
Здесь ABS берёт абсолютное значение разницы, а 5 — пороговое количество дней.
Почему условное форматирование не работает?

Если правила не применяются, проверьте:

1. Формат ячеек — даты должны быть в числовом формате, а не текстом.

2. Абсолютные ссылки — в формулах для диапазонов используйте $A$2:$A$100, а для первой строки — A2 (без $ перед номером строки).

3. Приоритет правил — правила применяются сверху вниз. Переместите нужное правило вверх через Управление правилами.\]

Цель Формула для условного форматирования Пример визуализации
Просроченные задачи =И($A2<>""; $B2>$A2) Красный фон
Совпадающие даты =И($A2=$B2; $A2<>"") Зелёный фон
Разница > 7 дней =ABS($A2-$B2)>7 Жёлтый фон
Пустые даты в столбце A =$A2="" Серый текст

4. Сравнение с учётом рабочих дней (исключая выходные)

Если вам нужно сравнить даты с учётом только рабочих дней (например, для расчёта сроков доставки), стандартные формулы не подойдут. Здесь поможет функция РАБДЕНЬ (WORKDAY в английской версии).

Допустим, в A2 — плановая дата, а в B2 — фактическая. Чтобы посчитать разницу в рабочих днях, используйте:

=РАБДЕНЬ($A2; $B2-$A2)
Но эта формула неверна! Правильный вариант:
=РАБДЕНЬ($A2; $B2-$A2-1)
Ключевой нюанс: функция РАБДЕНЬ возвращает дату, а не количество дней. Чтобы получить разницу, используйте:
=ЧИСТРАБДНИ($A2; $B2)

Если в вашей стране выходные не суббота-воскресенье, укажите их явно:

=ЧИСТРАБДНИ.INTL(A2; B2; 11)
Где 11 — код для выходных "пятница-суббота" (как в ОАЭ). Полный список кодов см. в документации Microsoft.
⚠️ Внимание: Функция ЧИСТРАБДНИ не учитывает праздники. Чтобы их исключить, добавьте диапазон с датами праздников в третий аргумент: =ЧИСТРАБДНИ(A2; B2; $D$2:$D$10), где D2:D10 — список праздников.

5. Продвинутые методы: Power Query и сводные таблицы

Для работы с большими объёмами данных (тысячи строк) или если даты хранятся в разных файлах, ручное сравнение неэффективно. Здесь поможет Power Query — инструмент для преобразования и объединения данных.

Шаги для сравнения двух столбцов с датами в Power Query:

  1. Выделите исходную таблицу → Данные → Из таблицы/диапазонаExcel 2016+).
  2. В открывшемся редакторе Power Query нажмите Главная → Объединить запросы → Объединить.
  3. Выберите второй столбец с датами для сравнения.
  4. Укажите тип объединения — например, Анти-пересечение (покажет даты, которые есть только в одном из столбцов).
  5. Нажмите ОКЗакрыть и загрузить.

Для анализа разницы между датами создайте сводную таблицу:

  1. Выделите данные → Вставка → Сводная таблица.
  2. Перетащите оба столбца с датами в область Строки.
  3. Добавьте вычисляемое поле: Разница = [Фактическая дата] - [Плановая дата].
  4. Отсортируйте по убыванию, чтобы увидеть максимальные задержки.

Power Query также позволяет:

  • 🔄 Объединять данные из нескольких файлов.
  • 🧹 Очищать даты от лишних символов (например, удалять время, если оно не нужно).
  • 📊 Создавать промежуточные столбцы с разницей в днях/месяцах.

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

Даже простые операции с датами в Excel чреваты ошибками. Вот TOP-5 проблем и их решения:

  • 🚫 Ошибка #ЗНАЧ!: Возникает, если одна из "дат" на самом деле текст. Проверьте формат ячейки или используйте =ДАТАЗНАЧ(A2) для преобразования.
  • 🚫 Неправильная разница в днях: Если формула =B2-A2 возвращает дробное число (например, 3,125), значит, в датах учитывается время. Используйте =ЦЕЛОЕ(B2-A2).
  • 🚫 Смещение на 4 года: Excel ошибочно распознаёт "01.03.2026" как "1 марта 1925". Используйте формат дд.мм.гггг или функцию =ДАТА(год; месяц; день).
  • 🚫 Проблемы с локалью: В американском Excel дата "03/04/2026" — это 3 апреля, а в российском — 4 марта. Настройте региональные параметры в Файл → Параметры → Язык.
  • 🚫 Условное форматирование не обновляется: Если вы изменили данные, но цвета не обновились, нажмите Главная → Форматировать как таблицу → Обновить.

Чтобы избежать большинства ошибок, всегда проверяйте формат ячеек:

  1. Выделите столбец с датами.
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Убедитесь, что выбран формат Дата (а не Текст или Общий).

Если даты импортированы из внешнего источника (например, 1C или SQL), используйте функцию =ДАТАЗНАЧ() для принудительного преобразования:

=ЕСЛИОШИБКА(ДАТАЗНАЧ(A2); "Некорректная дата")

7. Автоматизация: макросы для сравнения дат

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

Sub CompareDates()

Dim rng As Range

Dim cell As Range

Set rng = Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row)

For Each cell In rng

If cell.Value > cell.Offset(0, -1).Value Then

cell.Interior.Color = RGB(255, 100, 100) ' Красный цвет

Else

cell.Interior.ColorIndex = xlNone ' Убрать цвет

End If

Next cell

End Sub

Чтобы запустить макрос:

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

Для более сложных задач (например, сравнения дат с учётом праздников) можно модифицировать макрос:

Function WorkdayDiff(startDate As Date, endDate As Date) As Long

Dim holidays As Variant

holidays = Array("01.01.2026", "07.01.2026", "23.02.2026") ' Список праздников

WorkdayDiff = Application.WorksheetFunction.NetWorkdays(startDate, endDate, holidays)

End Function

Теперь в Excel можно использовать =WorkdayDiff(A2; B2).
⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm. Сохраните книгу в этом формате, иначе код не выполнится.

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

❓ Как сравнить даты без учёта времени?

Используйте функцию ЦЕЛОЕ() или ДЕНЬ() + МЕСЯЦ() + ГОД():

=И(ДЕНЬ(A2)=ДЕНЬ(B2); МЕСЯЦ(A2)=МЕСЯЦ(B2); ГОД(A2)=ГОД(B2))

Или проще:

=ЦЕЛОЕ(A2)=ЦЕЛОЕ(B2)
❓ Почему формула =A2=B2 возвращает ЛОЖЬ, хотя даты выглядят одинаково?

Скорее всего, в одной из ячеек есть скрытое время (например, "01.01.2026 00:00:00" vs "01.01.2026 12:00:00"). Проверьте формат ячейки или используйте =ЦЕЛОЕ(A2)=ЦЕЛОЕ(B2).

❓ Как найти самую позднюю дату в паре столбцов?

Используйте функцию МАКС():

=МАКС(A2:B2)

Для поиска строки с максимальной датой в диапазоне:

=ИНДЕКС($A$2:$A$100; ПОИСКПОЗ(МАКС($B$2:$B$100); $B$2:$B$100; 0))
❓ Можно ли сравнить даты в Google Таблицах?

Да, все приведённые формулы работают и в Google Sheets, за исключением:

  • Функция РАБДЕНЬ называется WORKDAY (но в русской версии — РАБДЕНЬ).
  • Для ЧИСТРАБДНИ используйте =NETWORKDAYS(A2; B2).
  • Макросы в Google Таблицах пишутся на Google Apps Script (JavaScript).
❓ Как сравнить даты с учётом только месяца и года (игнорируя день)?

Создайте вспомогательный столбец с формулой:

=ДАТА(ГОД(A2); МЕСЯЦ(A2); 1)

Теперь сравнивайте значения в этом столбце — они будут приведены к первому дню месяца.