Новости:

К первому сообщению темы должен быть прикреплен файл примера в формате xls*.
Приложив пример, Вы избавите себя и других от вопросов типа "А какой критерий?", "А куда выводить результат?", "А сколько строк?" и все тех же просьб выложить файл. Рисовать за Вас Ваши же таблички с заданиями, а затем и решение к ним, никто желанием не горит. Да и, как показывает практика, в большинстве случаев без файла решения не найти.

Главное меню

=СУММЕСЛИ() с критерием НЕ ПУСТО.

Автор Shadowmaker, 03.09.2014, 12:31

« назад - далее »

sst

#15
Ничто из указанного не работает на последнем excel
работает следующее:
=SUMPRODUCT((B1:B5<>"")*(A1:A5))
и следующее(формула массива):
{=SUM((B1:B5<>"")*(A1:A5))}
лучше использовать sumproduct - он быстрее, не заморочнее, а синтаксис такой же как в формуле массива

boa

Цитата: sst от 15.01.2020, 13:39
Ничто из указанного не работает на последнем excel
вы меня аж удивили своим постом...
все работает! (Проверено в Excel 365)
хотя, ваши формулы тоже имеют право на жизнь, но это уже следующий уровень.
Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

sst

Вот сделал небольшое изыскание
Результат интересный. Не всегда очевидный

vikttur

#18
ЦитироватьНичто из указанного не работает на последнем excel
Да ну? Работает же.
Ваши изыскания не во всем понятны и новичка могут вместо помощи только запутать...

Зачем применять СУММЕЛИМН, если можно СУММЕСЛИ, которая работает быстрее?
Попутно - СУММЕСЛИ умеет определять используемый диапазон, а СУММЕСЛИМН и СУММПРОИЗВ не умеют. Это к чему? Так, как Вы указали диапазоны - неправильно, формулы лопатят все строки листа.

ЦитироватьSUMPRODUCT(($A:$A<>"")*($C:$C)) - Здесь суммирует даже первую строку
пытается умножить на текст из С1, отчего и получается ошибка.

ЦитироватьSUMIFS($C:$C;$A:$A;"*") - Считает все символьные данные, включая формулы
Функция не считает, она суммирует по условию.
Определение "символьные данные", применяемое в примере, некорректно. Число 5 - тоже символ. Данные могут быть числовыми или текстовыми.
"?"  - служебный символ, подразумевается один символ.
"*" - служебный символ, подразумевается текст любой длины, включая нулевую.
"?*" - текст любой длины, исключая нулевую
Так как формула не может возвращать пустоту ("" - не пустота, это текст нулевой длины), то ячейка с формулой тоже принимается в расчет

"Каждой фуфайке свой гвоздик" :)
Например, "<>" и "<>0"  тоже имеют разное назначение, СУММЕСЛИ умеет преобразовывать текстовую запись числа в нормальное число, СУММПРОИЗВ такому не научена. Тонкостей много и говорить, что "формула не работает" можно, но правильно ли такое утверждение (какие данные, как расположены, какая задача решается и т.д.)



sst

повторюсь еще раз - ни одна из указанных выше формул не решает задачу, если в столбце с данными стоит не значение а формула (что чаще всего и есть).
почему, я указал чуть выше. Мои изыскания не для новичков, а для понимания, что результат может быть разным, и что ни одна из вышеуказанных формул не решает задачу.