Как в Excel вычесть числа: формулы, примеры и лайфхаки

Введение: зачем учиться вычитать в Excel?

На первый взгляд, вычитание в Microsoft Excel кажется тривиальной задачей: ввел формулу =A1-B1 — и готово. Но на практике даже опытные пользователи сталкиваются с неожиданными ошибками: вместо чисел появляются даты, формулы не тянутся на весь столбец, или результат отображается в научном формате 1.23E+10. Почему так происходит?

Дело в том, что Excel воспринимает данные не как простые цифры, а как объекты с типами: числа, даты, время, текст. И вычитание работает по-разному в каждом случае. Например, если вычесть "10 апр" из "15 апр", Excel вернет 5 — количество дней между датами, а не ошибку. Эта гибкость делает программу мощной, но и требует понимания нюансов.

В этой статье разберем все возможные сценарии вычитания в Excel: от базовых операций до работы с массивами, динамическими диапазонами и даже вычитания времени с учетом рабочих дней. А еще научимся ловить и исправлять типичные ошибки, которые портят результаты.

Способ 1: Простое вычитание чисел (формула и примеры)

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

=число1 - число2

Где число1 и число2 могут быть:

  • 🔢 Константами (фиксированными значениями): =100-20
  • 📊 Ссылками на ячейки: =A2-B2
  • 🔄 Смешанными: =100-A2 или =B2-50

Пример: если в ячейке A1 записано 200, а в B130, формула =A1-B1 вернет 170. Но что делать, если нужно вычесть сразу несколько чисел?

Формула Пример данных Результат Пояснение
=A1-B1-C1 A1=500, B1=100, C1=50 350 Вычитает последовательно: 500-100=400, затем 400-50=350
=A1-(B1+C1) A1=500, B1=100, C1=50 350 Сначала складывает 100+50=150, затем 500-150=350
=A1-B1*10% A1=200, B1=50 195 Вычитает 10% от значения в B1 (50*10%=5), затем 200-5=195

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

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

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

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

  1. Введите формулу в первую ячейку (например, =B2-C2).
  2. Наведите курсор на правый нижний угол ячейки — появится черный крестик (маркер заполнения).
  3. Дважды кликните по нему или протяните вниз до нужной строки.

Excel автоматически скорректирует ссылки: =B3-C3, =B4-C4 и так далее. Но что если нужно зафиксировать одну из ссылок?

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

Для фиксации используйте абсолютные ссылки с символом $:

  • 🔗 =B2-$C$2 — фиксирует ячейку C2 (вычитаем одно и то же значение из всех строк столбца B).
  • 🔗 =$B2-C2 — фиксирует столбец B (полезно для вычитания данных из одного столбца от разных столбцов).
⚠️ Внимание: Если при автозаполнении формулы возвращают ошибку #ЗНАЧ!, проверьте, нет ли в ячейках текста вместо чисел. Excel не может вычесть текст!

Способ 3: Вычитание дат (дней, месяцев, лет)

Excel хранит даты как числа, где 1 января 1900 года = 1, а каждая последующая дата — это количество дней с этой точки отсчета. Поэтому вычитание дат автоматически возвращает разницу в днях.

Примеры:

  • 📅 =B2-A2 — если A2=10.05.2026, а B2=15.05.2026, результат: 5 (дней).
  • 📅 =ДАТА(2026;12;31)-СЕГОДНЯ() — сколько дней осталось до Нового года.
  • 📅 =ГОД(B2)-ГОД(A2) — разница в годах (но не учитывает месяцы!).

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

=РАЗНДАТ(A2; B2; "m")

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

  • 📆 "y" — полные годы.
  • 📆 "d" — дни (игнорируя месяцы и годы).
  • 📆 "ym" — месяцы без учета дней и лет.
Формула Пример данных Результат Пояснение
=РАЗНДАТ("1.01.2020"; "1.06.2026"; "y") 4 Полных лет между датами (с 01.01.2020 по 01.06.2026)
=РАЗНДАТ(A2; B2; "md") A2=15.03.2026, B2=10.04.2026 26 Дней между датами, игнорируя месяцы и годы
=ДЕНЬНЕД(B2-A2) A2=01.05.2026, B2=10.05.2026 4 День недели для разницы (9 дней = 4-й день недели = четверг)
Почему РАЗНДАТ может возвращать отрицательные числа?

Функция РАЗНДАТ всегда вычитает первую дату из второй. Если в формуле =РАЗНДАТ(B2; A2; "d") дата в B2 раньше, чем в A2, результат будет отрицательным. Чтобы избежать этого, используйте =АБС(РАЗНДАТ(A2; B2; "d")) — функция АБС вернет абсолютное значение.

Способ 4: Вычитание времени (часов, минут, секунд)

С временем в Excel та же логика, что и с датами: оно хранится как дробная часть дня, где 1 = 24 часа. Например, 0,5 — это 12:00, а 0,25 — 6:00.

Чтобы вычесть время, используйте:

  • =B2-A2 — если A2=09:00, B2=17:30, результат: 8:30 (формат ячейки должен быть "Время").
  • =ТЕКСТ(B2-A2; "ч:мм") — отобразит разницу в формате "8:30" даже если результат отрицательный.
  • =ЧАС(B2-A2)*60+МИНУТЫ(B2-A2) — переведет разницу в минуты (например, 8:30 = 510 минут).

Проблема: если вычесть 08:00 из 07:00, Excel покажет ###### (ошибка отрицательного времени). Решение:

  1. Выделите ячейку с результатом.
  2. Нажмите Ctrl+1 (или правая кнопка → Формат ячеек).
  3. Выберите формат [ч]:мм (квадратные скобки позволяют отображать значения >24 часов).
⚠️ Внимание: Если вы работаете с временными интервалами >24 часов (например, 27:30), используйте формат [ч]:мм:сс. Иначе Excel сбросит отсчет после 23:59.

Способ 5: Вычитание с условиями (функции ЕСЛИ и СУММЕСЛИ)

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

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

Эта формула проверяет, больше ли значение в B2 чем 1000. Если да — вычитает C2 из B2, если нет — возвращает 0.

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

  • 🔍 =СУММЕСЛИ(A2:A10; "Яблоки"; B2:B10)-СУММЕСЛИ(A2:A10; "Яблоки"; C2:C10) — вычитает сумму расходов на яблоки из суммы доходов.
  • 🔍 =СУММЕСЛИМН(B2:B10; A2:A10; "Яблоки"; D2:D10; ">100") — суммирует доходы от яблок с ценой >100 рублей.

А что если нужно вычесть значения из разных листов? Используйте трехмерные ссылки:

=Лист2!B2-Лист1!B2

Или для диапазонов:

=СУММ(Лист1:Лист3!B2)-C2

Способ 6: Продвинутые техники (массивы, Power Query, VBA)

Для обработки больших данных простых формул недостаточно. Рассмотрим продвинутые методы:

1. Вычитание с помощью массивов (CSE-формулы):

Допустим, нужно вычесть из каждого элемента массива {10;20;30} число 5. Используйте:

={10;20;30}-5

Но чтобы формула работала, нажмите Ctrl+Shift+Enter (в новых версиях Excel работает автоматически). Результат: {5;15;25}.

2. Power Query (Excel 2016+):

  1. Выделите данные → вкладка ДанныеИз таблицы/диапазона.
  2. В редакторе Power Query добавьте столбец: Добавить столбецНастраиваемый столбец.
  3. Введите формулу: [Доход]-[Расход] (имена столбцов в квадратных скобках).
  4. Нажмите Закрыть и загрузить.

3. VBA-макрос для вычитания:

Если нужно вычесть значения в цикле, создайте макрос:

Sub ВычестьСтолбцы()

Dim i As Integer

For i = 2 To 100 'с 2-й по 100-ю строку

Cells(i, 4).Value = Cells(i, 2).Value - Cells(i, 3).Value 'результат в столбец D

Next i

End Sub

Этот код вычитает значения из столбца C от столбца B и записывает результат в D.

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

Даже в простых операциях вычитания Excel может выдавать ошибки. Разберем самые частые:

Ошибка Причина Решение
#ЗНАЧ! В ячейке текст вместо числа (например, пробел или апостроф). Используйте =ЗНАЧЕН(A1) для преобразования текста в число или проверьте данные на скрытые символы.
#ДЕЛ/0! Попытка вычесть из пустой ячейки (Excel воспринимает ее как 0). Замените пустые ячейки на ноль: =ЕСЛИ(A1="";0;A1)-B1.
###### Столбец слишком узкий для отображения числа или отрицательное время. Расширьте столбец или измените формат на [ч]:мм.
Некорректный результат (например, 1.23E+10) Excel отображает число в научном формате. Нажмите Ctrl+1 → выберите формат Числовой.

Еще одна распространенная проблема: вычитание процентов. Многие ошибочно пишут =A1-20%, но это вычитает 20% от результата, а не от A1. Правильно:

=A1-(A1*20%)  или  =A1*80%
⚠️ Внимание: Если вы вычитаете данные из внешних источников (например, импортированные из CSV), проверьте региональные настройки. В некоторых странах в качестве разделителя используется запятая вместо точки, и Excel может воспринимать числа как текст.

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

Как вычесть одно и то же число из всего столбца?

Используйте абсолютную ссылку на ячейку с вычитаемым значением. Например, если число записано в D1, формула будет:

=A1-$D$1

Протяните формулу на весь столбец — $D$1 останется неизменной.

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

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

  1. Выделите ячейку с результатом.
  2. Нажмите Ctrl+1.
  3. Выберите формат Общий или Числовой.
Можно ли вычесть время с учетом только рабочих дней?

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

=РАБДЕНЬ(A2; B2-A2)

Где A2 — начальная дата, B2 — конечная. Функция вернет количество рабочих дней между датами.

Как вычесть значения из закрытой книги Excel?

Sans открытия файла это невозможно, но можно:

  1. Создать ссылку на внешнюю книгу: =[Книга1.xlsx]Лист1!A1-B1.
  2. Использовать Power Query для импорта данных из закрытого файла (требуется путь к файлу).
  3. Написать VBA-макрос, который открывает книгу в фоновом режиме, считывает данные и закрывает файл.

Обратите внимание: при изменении пути к файлу ссылки сломаются.

Почему при вычитании в Excel появляются символы #Н/Д?

Ошибка #Н/Д (нет данных) возникает, если:

  • Вы ссылаетесь на несуществующий диапазон (например, =A1000-B1000, но строки пустые).
  • Используете функции поиска (ВПР, ИНДЕКС), которые не нашли значение.
  • В ячейке формула массива, но нажат не Ctrl+Shift+Enter.

Решение: проверьте диапазоны и синтаксис формул. Для игнорирования ошибок оберните формулу в ЕСЛИОШИБКА:

=ЕСЛИОШИБКА(A1-B1; 0)