Страницы: 1
RSS
Сумма всех расходов, кроме строк с указанным фрагментом
 
Добрый день! На листе 2 находится формула, которая считает на листе 1 сумму расходов (столбец "что") по критерию наличия "ндс" в наименовании. Как эту формулу, так сказать, инвертировать? Чтобы она считала все КРОМЕ "ндс"? Или, если спросить шире, как добавлять в СУММПРОИЗВ исключения из расчетов на основании наименований строк? Спасибо.
 
Добрый день.
Решение" в лоб" - отнимаем ндс от общей суммы.
Ну или если смотреть представленную формулу - заменить ЕЧИСЛО на ЕОШИБКА
Изменено: Hugo - 20.03.2020 12:28:55
 
=СУММЕСЛИ(Таблица1[что];"<>*ндс*";Таблица1[сколько])

=СУММПРОИЗВ(--ЕОШ(ПОИСК("ндс";Таблица1[что]));Таблица1[сколько])
=СУММ(СУММЕСЛИ(Таблица1[что];{"*";"*ндс*"};Таблица1[сколько])*{1;-1})
 
Hugo, работает. Спасибо.
vikttur, спасибо! Мне суммпроизв привычней и пока понятней в плане ее модификации.

А как добавить критериев для отбора? Добавлением блоков что-то типа этого?
Код
=СУММПРОИЗВ(ЕОШИБКА(ПОИСК("ндс";Таблица1[что]))*ЕОШИБКА(ПОИСК("критерий2";Таблица1[что]))*Таблица1[сколько]
 
Можно, но громоздко.
Добавляем табличку с перечнем исключений. Добавляем столбец. В столбце любая формула для отметки строки.
Результат получаем простой формулой:
=СУММЕСЛИ(Таблица1[критерий];0;Таблица1[сколько])

P.S. В доп. формуле можно вместо отметки писать сумму:
=ЕСЛИ(строка_подходит;сумма;0)
тогда и формула для результата проще - только сумммирование по столбцу

Если критериев 3-4, их можно перечислить в массиве констант во вспомогательной формуле:
=ИЛИ(ЕЧИСЛО(ПОИСК({"ндс";"не ндс";"совсем не то";"точно то"};[@что])))
=И(ЕОШ(ПОИСК({"ндс";"не ндс";"совсем не то";"точно то"};[@что])))
 
Действительно, громоздко. Не хотелось бы городить огород без особой необходимости. Мне больше нравится "зашивать" все необходимые условия в тело формулы.
А что за формула такая вспомогательная? Можно подробнее? Куда ее и зачем?
Такого вида {"ндс";"не ндс";"совсем не то";"точно то"} перечисление никак нельзя внедрить в тело какой-нибудь из вышеобозначенных формул, Ваших или решения Hugo? Вот примерно так:
Код
=СУММПРОИЗВ(ЕОШИБКА(ПОИСК({"ндс";"не ндс";"совсем не то";"точно то"};Таблица1[что]))*(Таблица1[сколько]))
 
Цитата
glasnaya bukva написал: А что за формула такая вспомогательная? Можно подробнее? Куда ее и зачем?
Зря файл прикрепил?

Громоздко - это я писал о формуле, в которую пихают все, что нужно и не нужно.
Цитата
Не хотелось бы городить огород без особой необходимости
Огород Вы уже городите, с формулой.

Цитата
Мне больше нравится "зашивать" все необходимые условия в тело формулы.
Нужно к оптимальности стремиться, а не к нагромождению
 
Цитата
vikttur написал:
Громоздко - это я писал о формуле, в которую пихают все, что нужно и не нужно.
Благодарю за Вашу экспертную огородную оценку. Так можно запихнуть в формулу или нет?
 
Можно . Но с СУММПРОИЗВ не интересно. Сообщение №4. "Пилите, Шура" :)

Я же Вам предлагал. Отказываетесь, Вам только СУММПРОИЗВ люба...
=СУММ(СУММЕСЛИ(Таблица1[что];{"*";"*ндс*";"*и это*";"*и то*"};Таблица1[сколько])*{1;-1;-1;-1})

В этой формуле получаем 4 значения, которые потом суммируются внешней функцией.
"*" -  суммируем по условию наличия любого текста, т.е. сумма всех значений;
"*ндс*" - суммируем значения тех строк, где содержится указанный фрагмент.
Смотрим массивы констант: в первом  фрагменты, которые ищем, второй делает отрицательными полученные значения (кроме первого). Суммируем полученные результаты:
=СУММ(a;-b;-c;-d), что в даном случае равнозначно =a-b-c-d

То же, но с выносом общей суммы:
=СУММ(Таблица1[сколько];-СУММЕСЛИ(Таблица1[что];{"*ндс*";"*и это*";"*и то*"};Таблица1[сколько]))
 
СУММПРОИЗВ моя люба, потому что может тянуть данные из закрытых книг. Я знаю, в моем примере не было задачи что-то забирать из закрытой книги, но в моей работе такое часто используется, потому я и делал упор именно на эту функцию. В остальном ваш метод прекрасно работает. Спасибо.
Страницы: 1
Наверх