Формула разницы в Excel: 7 способов вычесть числа, даты и время

Почему формула разницы в Excel работает не так, как вы ожидаете?

Вы когда-нибудь пытались вычесть два числа в Microsoft Excel, но вместо ожидаемого результата получали странные даты или ошибки #ЗНАЧ!? Это классическая проблема новичков, которая возникает из-за того, что Excel воспринимает данные в ячейках не так, как нам кажется. Программа автоматически преобразует введенные значения в один из трех основных форматов: числа, даты или текст — и это напрямую влияет на результат вычитания.

Например, если вы попытаетесь вычесть 10-05-2026 из 15-05-2026, ожидая получить разницу в 5 дней, но забудете отформатировать ячейки как Дата, Excel воспримет эти значения как текст и вернет ошибку. Или хуже — выполнит математическую операцию с внутренними числовыми представлениями дат (где 1 января 1900 года = 1), что приведет к бессмысленному результату вроде 45432. В этой статье мы разберем 7 рабочих способов вычитания в Excel — от базовых арифметических операций до расчета разницы между временем с учетом рабочих дней.

1. Базовая формула разницы между числами

Самый простой случай — когда вам нужно найти разницу между двумя числовыми значениями. Для этого используется стандартный оператор вычитания - (дефис). Формула выглядит так:

=A2-B2

Где A2 и B2 — адреса ячеек с исходными данными. Например, если в A2 записано 1500, а в B21200, результат будет 300.

  • 📌 Автоматическое заполнение: Потяните за правый нижний угол ячейки с формулой, чтобы скопировать её на весь столбец.
  • Быстрое вычитание: Выделите ячейку с результатом, нажмите F2, затем Enter — формула пересчитается.
  • 🔄 Отрицательный результат: Если первое число меньше второго, Excel покажет отрицательное значение (например, -200).
⚠️ Внимание: Если в ячейках вместо чисел отображаются знаки # (например, #####), расширьте столбец — данные не помещаются по ширине.

2. Разница между датами: дни, месяцы, годы

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

=B2-A2

Но что, если нужна разница в месяцах или годах? Здесь помогут специализированные функции:

  • 📅 Дни: =ДНИ(B2;A2) или =B2-A2 (результат в днях).
  • 📆 Месяцы: =РАЗНДАТ(A2;B2;"m") — возвращает полные месяцы между датами.
  • 🎂 Годы: =РАЗНДАТ(A2;B2;"y") — разница в полных годах.
  • 🕒 Дни с учетом годов: =РАЗНДАТ(A2;B2;"yd") — дни между датами без учета лет.

Пример: если в A2 записано 15.05.2020, а в B220.07.2023, то:

ФормулаРезультатПояснение
=B2-A21162Дни между датами
=РАЗНДАТ(A2;B2;"m")38Полных месяцев
=РАЗНДАТ(A2;B2;"y")3Полных лет
=РАЗНДАТ(A2;B2;"yd")185Дней без учета лет
⚠️ Внимание: Функция РАЗНДАТ может давать неожиданные результаты, если первая дата позже второй. Например, =РАЗНДАТ("20.07.2023";"15.05.2020";"y") вернет #ЧИСЛО!. Всегда указывайте более раннюю дату первой.
📊 Как часто вы работаете с датами в Excel?
Ежедневно
Несколько раз в неделю
Рядом
Никогда

3. Вычитание времени: часы, минуты, секунды

Разница во времени рассчитывается аналогично датам, но здесь важно правильно отформатировать ячейку с результатом. По умолчанию Excel покажет время в формате ч:мм, но если разница превышает 24 часа, отобразится только остаток (например, 12:00 вместо 36:00).

Чтобы исправить это:

  1. Выделите ячейку с результатом.
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Выберите категорию Все форматы и введите [ч]:мм:сс.

Примеры формул:

  • Разница в часах: =(B2-A2)*24 (где A2 и B2 — ячейки со временем).
  • ⏱️ Разница в минутах: =(B2-A2)*1440.
  • ⏲️ Разница в секундах: =(B2-A2)*86400.

Если при вычитании времени вы получаете ######, проверьте, что ячейка с результатом отформатирована как Общий или Числовой, а не как Дата.

Ячейки отформатированы как Время|Формула умножается на 24/1440/86400 для часов/минут/секунд|Ячейка результата имеет формат [ч]:мм:сс|Проверены опечатки в данных-->

4. Разница с условиями: функция ЕСЛИ

Иногда нужно вычесть значения только при выполнении определенного условия. Например, рассчитать разницу между планом и фактом, но только если факт превышает план. Здесь поможет комбинация ЕСЛИ и вычитания:

=ЕСЛИ(B2>A2; B2-A2; 0)

Расшифровка:

  • 🔹 Если B2 > A2 (факт больше плана), вычесть A2 из B2.
  • 🔹 Иначе вернуть 0.

Более сложный пример — вычитание с текстовой подсказкой:

=ЕСЛИ(B2>A2; "Превышение на " & ТЕКСТ(B2-A2;"0"); "В пределах плана")

Эта формула вернет текст типа "Превышение на 150" или "В пределах плана".

Как работает оператор & в формуле?

Оператор & (амперсанд) объединяет текстовые строки. В примере выше он соединяет статический текст "Превышение на " с динамическим значением разницы, преобразованным в текст функцией ТЕКСТ.

5. Расчет разницы в процентах

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

=(B2-A2)/A2 * 100%

Где:

  • 📈 A2 — базовое значение (100%).
  • 📉 B2 — новое значение.

Пример: если в A2 записано 500, а в B2600, результат будет 20% (увеличение на 20%). Если B2 = 400, результат -20% (уменьшение на 20%).

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

=ОКРУГЛ((B2-A2)/A2 * 100%; 2) & "%"
⚠️ Внимание: Если базовое значение (A2) равно 0, формула вернет ошибку #ДЕЛ/0!. Используйте ЕСЛИОШИБКА для обработки:
=ЕСЛИОШИБКА(ОКРУГЛ((B2-A2)/A2 * 100%; 2); "База = 0")

6. Продвинутые приемы: разница с учетом рабочих дней

Для расчета разницы между датами без учета выходных и праздников используйте функцию ЧИСТРАБДНИ:

=ЧИСТРАБДНИ(A2; B2)

Если нужно исключить также праздничные дни, укажите их диапазон в третьем аргументе:

=ЧИСТРАБДНИ(A2; B2; $D$2:$D$10)

Где $D$2:$D$10 — столбец с датами праздников. Пример:

Дата началаДата концаРабочие дниПраздники
01.05.202610.05.2026801.05; 09.05
15.05.202620.05.2026419.05

Для расчета разницы во времени только в рабочие часы (например, с 9:00 до 18:00) используйте комбинацию функций ЕСЛИ, ВРЕМЯ и ЧАС:

=ЕСЛИ(И(ЧАС(A2)>=9; ЧАС(A2)<18); B2-A2; 0)

7. Типичные ошибки и как их исправить

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

ОшибкаПричинаРешение
#ЗНАЧ!Ячейка содержит текст вместо числа/даты.Проверьте формат ячеек (Числовой или Дата).
#ДЕЛ/0!Деление на ноль в формуле процентов.Используйте ЕСЛИОШИБКА.
######Столбец слишком узкий или неверный формат.Расширьте столбец или измените формат на Общий.
Неверная разница в датахЯчейки отформатированы как текст.Примените формат Дата или используйте ДАТАЗНАЧ.

Если Excel упорно не хочет вычитать даты, попробуйте преобразовать текст в дату с помощью функции ДАТАЗНАЧ:

=ДАТАЗНАЧ(B2)-ДАТАЗНАЧ(A2)

Это принудительно конвертирует текстовые даты (например, "15.05.2026") в числовой формат.

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

Как вычесть процент из числа в Excel?

Используйте формулу =A2*(1-B2), где A2 — исходное число, а B2 — процент в десятичном формате (например, 20% = 0,2). Для удобства можно записать =A2*(1-20%).

Почему при вычитании дат получается число вроде 45678?

Excel хранит даты как последовательные числа, где 1 = 1 января 1900 года. Чтобы преобразовать результат в дни, просто отформатируйте ячейку как Общий или Числовой. Если нужно отобразить результат как дату, используйте формат Дата.

Как найти разницу между максимальным и минимальным значением в диапазоне?

Примените формулу =МАКС(A2:A10)-МИН(A2:A10), где A2:A10 — ваш диапазон данных. Для динамического диапазона используйте =МАКС(A:A)-МИН(A:A) (но это может замедлить работу с большими таблицами).

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

Да. Если рабочий день с 9:00 до 18:00 с перерывом на обед с 13:00 до 14:00, используйте:

=ЕСЛИ(И(B2>=ВРЕМЯ(9;0;0); B2<=ВРЕМЯ(18;0;0)); ЕСЛИ(И(B2>ВРЕМЯ(13;0;0); B2<ВРЕМЯ(14;0;0)); 0; B2-A2); 0)

Эта формула учитывает только рабочее время, игнорируя обеденный перерыв.

Как автоматически обновить все формулы разницы после изменения данных?

Excel по умолчанию пересчитывает формулы автоматически. Если этого не происходит:

  1. Перейдите в Формулы → Вычисления → Автоматически.
  2. Нажмите Ctrl+Alt+F9 для принудительного пересчета всех формул на листе.

Если используете Excel Online, пересчет происходит только после сохранения изменений.