Как вычесть число в Excel: от базовых формул до автоматизации

Если при попытке вычесть число в Excel вы получаете ошибку #ЗНАЧ!, результат в виде даты вместо числа или формула просто не срабатывает — проблема кроется в одном из трёх факторов: неверном формате ячеек, отсутствии абсолютной ссылки на вычитаемое значение или синтаксической ошибке в формуле. Например, при вводе =A1-5 в ячейке с текстом "10" (а не числом 10) Excel вернёт ошибку, а не результат 5. Даже простая операция вычитания требует учёта типов данных и правил ссылок — об этом многие забывают.

В 80% случаев пользователи сталкиваются с необходимостью вычесть фиксированное число из столбца (например, скидку 15% или налог 20%), динамическое значение из другой ячейки (как в расчёте разницы между доходом и расходом) или вычесть процент от числа. Каждый сценарий требует своего подхода: от элементарной арифметики до использования функций СУММПРОИЗВ или ИНДЕКС. Ниже разберём все варианты — от ручного ввода до автоматизации через VBA, а также типичные ошибки, из-за которых формулы "ломаются".

1. Базовое вычитание: фиксированное число из ячейки

Самый простой случай — когда нужно вычесть одно и то же число из всех ячеек столбца. Например, у вас есть цены товаров в столбце B, и требуется уменьшить их на 100 рублей (акционная скидка). Формула будет выглядеть так:

=B2-100

Но здесь есть подводный камень: если протянуть формулу вниз, Excel автоматически изменит ссылку на B3-100, B4-100 и т.д. — это корректно. Однако если вычитаемое число хранится в отдельной ячейке (например, D1), а не прописано в формуле, нужно зафиксировать ссылку знаком $:

=B2-$D$1
  • 📌 Абсолютная ссылка ($D$1) гарантирует, что при копировании формулы вычитаться будет всегда значение из D1, а не сдвинутая ячейка (D2, D3 и т.д.).
  • Быстрое фиксирование: выделите ссылку в строке формул и нажмите F4Excel автоматически добавит знаки $.
  • 🔄 Автозаполнение: после ввода формулы в первую ячейку потяните за правый нижний угол (маркер заполнения) вниз, чтобы применить её ко всему столбцу.
⚠️ Внимание: Если в ячейке B2 текст (например, "100 руб"), а не число, Excel вернёт ошибку #ЗНАЧ!. Проверьте формат ячеек: выделите столбец → ГлавнаяФорматЧисловой.

Выделите ячейку для результата|Введите формулу с абсолютной ссылкой на вычитаемое число|Проверьте формат ячеек (должен быть "Общий" или "Числовой")|Протяните формулу на весь столбец с данными-->

2. Вычитание динамического значения из другой ячейки

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

=B2-C2

Где B2 — доход, а C2 — расход. При копировании такой формулы вниз Excel автоматически сдвинет ссылки на B3-C3, B4-C4 и т.д. Это называется относительной ссылкой и работает по умолчанию.

Если нужно вычесть значение из ячейки, которая не меняется при протягивании (например, налоговая ставка в F1), используйте смешанную ссылку:

=B2-$F$1
Сценарий Формула Пример
Вычесть фиксированное число =A1-100 Из значения в A1 вычесть 100
Вычесть значение из другой ячейки =A1-B1 Разница между A1 и B1
Вычесть процент от числа =A1*(1-15%) Уменьшить A1 на 15%
Вычесть с абсолютной ссылкой =A1-$C$1 Из A1 вычесть значение из C1 (фиксировано)

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

=A1*(1-15%)

Где 15% — это скидка. Excel автоматически преобразует процент в десятичную дробь (0.15).

Ежедневно|Несколько раз в неделю|Редко|Никогда-->

3. Вычитание с условием: функция ЕСЛИ

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

=ЕСЛИ(B2>1000; B2-10%; B2)

Разберём синтаксис:

  • B2>1000 — условие (если цена > 1000).
  • B2-10% — действие, если условие истинно (вычесть 10%).
  • B2 — действие, если условие ложно (оставить цену без изменений).

Для более сложных условий используйте ЕСЛИМН (доступно в Excel 2019 и новее):

=ЕСЛИМН(

B2>2000; B2-20%; // Если >2000, скидка 20%

B2>1000; B2-10%; // Если >1000, скидка 10%

ИСТИНА; B2 // Во всех остальных случаях без скидки

)

⚠️ Внимание: В старых версиях Excel (до 2019) функция ЕСЛИМН недоступна. Используйте вложенные ЕСЛИ, но не более 7 уровней — иначе формула станет нечитаемой.

4. Вычитание в массивах: СУММПРОИЗВ и ИНДЕКС

Если нужно вычесть числа из двух динамических диапазонов (например, списки доходов и расходов по месяцам), удобно использовать СУММПРОИЗВ:

=СУММПРОИЗВ((B2:B10)-(C2:C10))

Эта формула вернёт сумму разниц между парами ячеек B2-C2, B3-C3 и т.д. до B10-C10.

Для вычитания с учётом дополнительных критериев (например, только по определённому продукту) комбинируйте ИНДЕКС и ПОИСКПОЗ:

=ИНДЕКС(B2:B10; ПОИСКПОЗ("Товар1"; A2:A10; 0)) - 50

Здесь:

  • ПОИСКПОЗ находит позицию "Товар1" в столбце A.
  • ИНДЕКС возвращает значение из столбца B в найденной строке.
  • -50 — вычитаем фиксированное число (например, скидку).

5. Автоматизация вычитания через макрос

Если вычитание нужно выполнять регулярно (например, ежемесячно уменьшать цены на 5%), имеет смысл записать макрос. Вот пример кода на VBA, который вычитает 100 из всех ячеек выделенного диапазона:

Sub SubtractValue()

Dim cell As Range

For Each cell In Selection

If IsNumeric(cell.Value) Then

cell.Value = cell.Value - 100

End If

Next cell

End Sub

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

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

Макрос проверяет, является ли значение в ячейке числом (IsNumeric), чтобы избежать ошибок с текстом.

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

1. В редакторе VBA выберите ToolsVBAProject Properties.

2. Перейдите на вкладку Protection.

3. Установите флажок Lock project for viewing и введите пароль.

4. Сохраните файл как .xlsm.

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

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

Ошибка Причина Решение
#ЗНАЧ! В ячейке текст вместо числа Проверьте формат ячеек (Числовой) или используйте ЗНАЧЕН (=ЗНАЧЕН(A1)-100)
#ДЕЛ/0! Деление на ноль в формуле Проверьте, не используется ли деление в вычитании (например, =A1/B1-1 при B1=0)
Некорректный результат Формат ячейки с результатом — Дата Измените формат на Общий или Числовой
Формула не тянется Забыли зафиксировать ссылку $ Используйте абсолютные ссылки ($A$1) для фиксированных значений

Ещё одна частая проблема — вычитание дат. Если в ячейке A1 дата "01.01.2026", а в B1 — "10.01.2026", формула =B1-A1 вернёт 9 (количество дней между датами). Чтобы получить разницу в месяцах или годах, используйте функцию РАЗНДАТ:

=РАЗНДАТ(A1; B1; "m")

Где "m" — код для месяцев. Другие варианты:

  • "d" — дни,
  • "y" — годы,
  • "ym" — месяцы без учёта лет.

7. Продвинутые техники: вычитание с несколькими условиями

Для сложных расчётов, где вычитание зависит от нескольких критериев, комбинируйте функции ЕСЛИ, И, ИЛИ. Например, вычесть 200 рублей, если товар принадлежит категории "А" и его цена превышает 5000:

=ЕСЛИ(И(A2="А"; B2>5000); B2-200; B2)

Если условий больше двух, используйте ЕСЛИМН (для Excel 2019+) или вложенные ЕСЛИ:

=ЕСЛИ(A2="А"; ЕСЛИ(B2>5000; B2-200; B2); B2)

Для вычитания с учётом динамического диапазона (например, вычесть среднее значение из каждого элемента списка) применяйте СРЗНАЧ:

=A1-СРЗНАЧ($A$1:$A$10)

Здесь из каждой ячейки A1:A10 вычитается среднее значение этого же диапазона.

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

Как вычесть число из всей колонки сразу, не протягивая формулу?

Используйте специальную вставку:

  1. В пустой ячейке (например, C1) введите число, которое нужно вычесть (например, 100).
  2. Скопируйте эту ячейку (Ctrl+C).
  3. Выделите диапазон ячеек, из которых нужно вычесть число.
  4. ПКМ → Специальная вставкаВычестьОК.

Это изменит исходные данные, поэтому предварительно сделайте резервную копию.

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

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

  • Формат ячейки с результатом установлен как Дата.
  • Вы вычитаете числа, которые Excel интерпретирует как даты (например, 1 может означать 1 января 1900 года).

Решение: выделите ячейку с результатом → ГлавнаяФорматЧисловой.

Можно ли вычесть число из ячеек в разных листах?

Да, используйте ссылки на другие листы. Например, чтобы вычесть значение из ячейки A1 Листа2 из ячейки B1 Листа1, введите:

=Лист1!B1-Лист2!$A$1

Обратите внимание на восклицательный знак (!) и абсолютную ссылку ($A$1).

Как вычесть процент от суммы в Excel?

Есть два варианта:

  1. Вычесть процент от числа (например, 15% от 1000):
  2. =1000*(15%)
  3. Уменьшить число на процент (например, 1000 минус 15%):
  4. =1000*(1-15%)

Во втором случае формула сначала вычитает 15% из 1 (получается 0.85), затем умножает на 1000.

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

Если вы применили Фильтр к данным, а затем протянули формулу, она может пропустить скрытые строки. Решения:

  • Используйте функцию ПРОМЕЖУТОЧНЫЕ.ИТОГИ:
  • =ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9; B2:B10)-100
  • Снимите фильтр перед копированием формулы.
  • Преобразуйте диапазон в Таблицу Excel (Ctrl+T), тогда формулы будут автоматически применяться ко всем строкам, включая скрытые.