Вычитание процентов в Microsoft Excel — одна из самых востребованных операций, с которой сталкиваются бухгалтеры, маркетологи и аналитики. Казалось бы, что может быть проще: взять число, отнять от него 10% и получить результат. Но на практике даже опытные пользователи допускают ошибки, когда речь идет о динамических диапазонах, отрицательных значениях или каскадных скидках (например, "скидка 20% на товар, который уже уценен на 15%").
В этой статье мы разберем не только базовые формулы типа =A1-A1*10%, но и продвинутые техники: вычитание процента от суммы с условиями, расчет обратных процентов (когда известна конечная цена со скидкой), а также автоматизацию через Power Query для массовой обработки данных. Особое внимание уделим типичным ошибкам, из-за которых Excel возвращает #ЗНАЧ! или #ДЕЛ/0!, и покажем, как их обходить.
Если вы никогда не работали с формулами в Excel, не переживайте: первые два раздела написаны для новичков с нуля. Для опытных пользователей подготовлены уникальные кейсы — например, как вычесть процент из диапазона, где некоторые ячейки содержат текст, или как сделать так, чтобы формула автоматически подставляла актуальную ставку НДС из другой таблицы.
Все примеры протестированы в Excel 2019, Excel 365 и Google Таблицах. Если вы используете Excel для Mac или мобильную версию, обратите внимание на раздел с особенностями синтаксиса — там есть нюансы с разделителями (запятая vs точка с запятой).
1. Базовая формула: как вычесть фиксированный процент от числа
Начнем с самого простого: у вас есть число (например, цена товара), и вам нужно вычесть из него фиксированный процент (например, скидку 15%). В Excel это делается двумя способами:
Способ 1: Формула с прямым указанием процента
=A1-A1*15%
Где A1 — ячейка с исходным числом. Excel автоматически преобразует 15% в десятичную дробь 0.15.
Способ 2: Формула с ссылкой на ячейку с процентом
=A1-A1*B1
Где B1 — ячейка, содержащая процентное значение (например, 15% или 0.15). Этот способ удобнее, если процент может меняться (например, сезонные скидки).
✅ Пример:
| Исходная цена (A) | Процент скидки (B) | Формула | Результат (C) |
|---|---|---|---|
| 1 200 ₽ | 10% | =A2-A2*B2 | 1 080 ₽ |
| 5 500 ₽ | 25% | =A3-A3*B3 | 4 125 ₽ |
| 890 ₽ | 5% | =A4-A4*B4 | 845,50 ₽ |
⚠️ Внимание: Если в ячейке с процентом указано значение без знака % (например, просто 15), Excel воспримет его как 1500%! Всегда проверяйте формат ячейки: выделите её → правая кнопка → Формат ячеек → выберите Процентный.
2. Вычитание процента от суммы с условиями (функция ЕСЛИ)
Допустим, вам нужно вычесть 10% скидку только для товаров дороже 1 000 ₽, а для остальных оставить цену без изменений. Здесь поможет функция ЕСЛИ (или IF в английской версии):
=ЕСЛИ(A1>1000; A1-A1*10%; A1)
Разберем синтаксис:
- 🔹
A1>1000— условие (если цена больше 1 000 ₽). - 🔹
A1-A1*10%— действие, если условие истинно (вычесть 10%). - 🔹
A1— действие, если условие ложно (оставить цену без изменений).
📌 Продвинутый пример: Скидка 15% для товаров дороже 1 000 ₽ и дополнительные 5% для товаров дороже 5 000 ₽:
=ЕСЛИ(A1>5000; A1-A1*20%; ЕСЛИ(A1>1000; A1-A1*15%; A1))
⚠️ Внимание: Вложенные функции ЕСЛИ могут стать нечитаемыми, если их больше 3-х уровней. В таких случаях лучше использовать ВПР или ИНДЕКС/ПОИСКПОЗ для работы с таблицами скидок.
3. Вычитание процента из диапазона (массовая обработка)
Если нужно вычесть процент из целого столбца с ценами, не обязательно копировать формулу в каждую ячейку. Достаточно:
- Ввести формулу в первую ячейку (например,
=A2-A2*$B$1, где$B$1— фиксированный процент). - Навести курсор на правый нижний угол ячейки (появится крестик
+). - Дважды кликнуть левой кнопкой мыши — формула автоматически скопируется до последней заполненной ячейки в столбце
A.
🔹 Абсолютная vs относительная ссылка:
- 📌
$B$1— абсолютная ссылка (не меняется при копировании). - 📌
B1— относительная ссылка (меняется наB2,B3и т.д.).
⚠️ Внимание: Если в столбце есть пустые ячейки или текст, Excel вернет #ЗНАЧ!. Чтобы избежать ошибок, оберните формулу в ЕСЛИОШИБКА:
=ЕСЛИОШИБКА(A2-A2*$B$1; "")
Убедиться, что все ячейки с ценами имеют числовой формат|Проверить отсутствие текстовых значений (например, "Нет в наличии")|Зафиксировать ячейку с процентом абсолютной ссылкой ($B$1)|Проверить, что процент указан в формате "Процентный" (а не как десятичная дробь)-->
4. Обратный расчет: как найти исходную цену, если известна цена со скидкой
Ситуация: вы знаете, что товар продается за 800 ₽ после скидки 20%. Как узнать его исходную цену? Здесь поможет формула:
=C1/(1-D1)
Где:
- 🔹
C1— цена со скидкой (800 ₽). - 🔹
D1— скидка в десятичном формате (20% = 0.2).
📌 Пример:
| Цена со скидкой (C) | Скидка (D) | Формула | Исходная цена (E) |
|---|---|---|---|
| 800 ₽ | 20% | =C2/(1-D2) | 1 000 ₽ |
| 1 240 ₽ | 15% | =C3/(1-D3) | 1 458,82 ₽ |
⚠️ Внимание: Если скидка указана как отрицательное число (например,
Если разделить 800 ₽ на 20%, получится 4 000 ₽ — это неверно, потому что 20% вычисляются от исходной цены, а не от конечной. Формула -20% для наценки), формула примет вид =C1/(1+ABS(D1)), где ABS — функция модуля.
Почему нельзя просто разделить на процент?
=C1/(1-D1) учитывает, что скидка применяется к неизвестному значению (X), и решает уравнение: X - X*D1 = C1.
5. Вычитание процента с учетом НДС и других налогов
Расчет цены без НДС (или с вычетом другого налога) — частая задача для бухгалтеров. В России ставка НДС обычно составляет 20%, поэтому формула для вычитания НДС из суммы с налогом будет такой:
=A1/1,2
Где A1 — сумма с НДС.
🔹 Альтернативный вариант (если ставка НДС в отдельной ячейке):
=A1/(1+B1)
Где B1 — ставка НДС в десятичном формате (например, 0.2 для 20%).
⚠️ Внимание: Если вы работаете с упрощенной системой налогообложения (УСН), где налог включается в цену (а не добавляется сверху), используйте формулу:
=A1/(1+B1)*B1
Эта формула вернет сумму налога, а не цену без налога.
📊 Сравнение методов:
| Тип налога | Формула для цены без налога | Формула для суммы налога |
|---|---|---|
| НДС 20% (включен в цену) | =A1/1,2 | =A1-A1/1,2 |
| НДС 20% (добавлен к цене) | =A1/1,2 | =A1-A1/1,2 |
| УСН 6% (включен в цену) | =A1/1,06 | =A1-A1/1,06 |
6. Динамическое вычитание процентов (с привязкой к дате или условию)
Представьте, что скидка действует только в определенные дни недели или в течение промо-периода. Для этого можно комбинировать вычитание процентов с функциями ЕСЛИ, И, ДЕНЬНЕД или СЕГОДНЯ.
📌 Пример 1: Скидка 10% по понедельникам
=ЕСЛИ(ДЕНЬНЕД(СЕГОДНЯ())=2; A1-A1*10%; A1)
Где ДЕНЬНЕД возвращает номер дня недели (2 = понедельник).
📌 Пример 2: Скидка 15% с 1 по 10 число каждого месяца
=ЕСЛИ(И(ДЕНЬ(СЕГОДНЯ())>=1; ДЕНЬ(СЕГОДНЯ())<=10); A1-A1*15%; A1)
⚠️ Внимание: Функция СЕГОДНЯ() обновляется при каждом открытии файла. Если вам нужно зафиксировать дату (например, для отчета), замените её на конкретное значение (например, "31.12.2026").
7. Распространенные ошибки и как их исправить
Даже в простых формулах с процентами Excel может выдавать ошибки. Вот самые частые из них и способы их устранения:
🔴 Ошибка #ЗНАЧ!:
- 🔹 Причина: В ячейке с ценой или процентом содержится текст (например, "Нет данных").
- 🔹 Решение: Используйте
ЕСЛИОШИБКАили проверкуЕСЛИ(ЕЧИСЛО(A1); формула; "").
🔴 Ошибка #ДЕЛ/0!:
- 🔹 Причина: Деление на ноль (например, если ячейка с процентом пустая).
- 🔹 Решение: Задайте процент по умолчанию:
=ЕСЛИ(B1=0; A1; A1-A1*B1).
🔴 Неправильный результат (слишком большое/малое число):
- 🔹 Причина: Процент указан как целое число (например,
20вместо20%или0.2). - 🔹 Решение: Проверьте формат ячейки с процентом (должен быть
Процентный).
🔴 Формула не копируется корректно:
- 🔹 Причина: Не зафиксирована ячейка с процентом (отсутствует
$). - 🔹 Решение: Используйте абсолютную ссылку
$B$1.
Как найти все ошибки в таблице?
Выделите диапазон → Главная → Найти и выделить → Выделить группу ячеек → Ошибки. Excel подсветит все ячейки с ошибками, и вы сможете исправить их массово.
8. Альтернативные методы: Power Query и VBA
Если вам нужно вычесть проценты из тысяч строк или автоматизировать процесс, ручной ввод формул неэффективен. Рассмотрим два продвинутых подхода:
🔹 Метод 1: Power Query (Excel 2016 и новее)
- Выделите исходные данные →
Данные → Из таблицы/диапазона. - В редакторе Power Query выберите столбец с ценами →
Преобразовать → Стандартный → Вычесть. - Введите формулу типа
[Цена] - [Цена] * 0.15(для скидки 15%). - Нажмите
Закрыть и загрузить.
🔹 Метод 2: Макрос VBA (для массовой обработки)
Sub SubtractPercentage()
Dim rng As Range
Dim cell As Range
Dim discount As Double
discount = 0.15 ' 15% скидка
Set rng = Selection ' Выделенный диапазон
For Each cell In rng
If IsNumeric(cell.Value) Then
cell.Value = cell.Value - (cell.Value * discount)
End If
Next cell
End Sub
Чтобы запустить макрос: нажмите Alt+F11 → Insert → Module → вставьте код → выделите ячейки с ценами → запустите макрос (F5).
⚠️ Внимание: Макросы работают только в файлах с расширением .xlsm. Если вы сохраните файл как .xlsx, VBA-код будет удален!
FAQ: Частые вопросы о вычитании процентов в Excel
Как вычесть процент из суммы, если процент указан в другой таблице?
Используйте функцию ВПР или ИНДЕКС/ПОИСКПОЗ для подстановки процента. Пример:
=A1 - A1 * ВПР(B1; ДиапазонТаблицыСПроцентами; 2; ЛОЖЬ)
Где B1 — критерий поиска (например, категория товара), а ДиапазонТаблицыСПроцентами — таблица с соответствием категорий и скидок.
Можно ли вычесть процент без формул, через формат ячеек?
Нет, формат ячеек изменяет только отображение числа, но не его значение. Например, если применить процентный формат к ячейке с числом 50, она будет показывать 5000%, но в расчетах по-прежнему будет использоваться 50. Для вычитания процента обязательно нужна формула.
Почему при вычитании 10% из 100 я получаю 99,999999 вместо 90?
Это связано с погрешностью чисел с плавающей запятой. Excel хранит числа в двоичном формате, и некоторые дроби (например, 0.1) не имеют точного представления. Чтобы исправить:
- 🔹 Уменьшите количество знаков после запятой:
Формат ячеек → Числовой → 2 десятичных знака. - 🔹 Используйте функцию
ОКРУГЛ:=ОКРУГЛ(A1-A1*10%; 2).
Как вычесть процент в Google Таблицах? Синтаксис отличается?
Формулы работают аналогично, но есть нюансы:
- 🔹 Разделитель аргументов — запятая (
,), а не точка с запятой (;). Пример:=A1-A1*B1(без изменений), но=IF(A1>1000, A1-A1*0.1, A1). - 🔹 Функция
СЕГОДНЯпишется какTODAY(). - 🔹 Нет функции
ДЕНЬНЕД— используйтеWEEKDAY().
Можно ли сделать так, чтобы процент автоматически pulls из интернета (например, курс доллара)?
Да, но для этого потребуются надстройки:
- 🔹 В Excel 365: используйте
Power Queryс подключением к API Центробанка или финансовым источникам (например,=WEBSERVICE("https://www.cbr.ru/scripts/XML_daily.asp")+ парсинг XML). - 🔹 В Google Таблицах: воспользуйтесь функцией
=IMPORTXML()или=GOOGLEFINANCE().
⚠️ Для работы с API может потребоваться знание JSON или XML.