Страницы: 1
RSS
Посчёт значений с переменным количеством условий
 
Добрый день!

Прошу помочь подсчитать значения в таблице с переменным количеством условий (во вложении).
На первом листе исходные данные, на втром - результат некой комбнаторной деятельности.

Требуется подчитать количество элементов, соответсвующих условиям.

Когда множество условий полно, то СУММПРОИЗВ справляется на отлично, когда условий становится меньше, то, понятное дело, получается ноль. Не хотелось бы городить какие-то городуши и макросы. Мне кажется, ято что-то недопонимаю в СУММПРОИЗВ

Прошу помочь.
 
Цитата
написал:
Прошу помочь.
Похожая история обсуждалась .
>>ТЫК<<
....Если надо объяснять, то не надо объяснять!
 
Meta2, добрый день.
Может, так получится?
Код
=СУММПРОИЗВ(--((Vendor=B2)+(B2=""));--((Family=C2)+(C2=""));--((Socket=D2)+(D2=""));--((FormFactor=E2)+(E2="")))
 

Код
=СУММПРОИЗВ(--((Vendor=B2)+(B2=""));--((Family=C2)+(C2=""));--((Socket=D2)+(D2=""));--((FormFactor=E2)+(E2="")))

Это работает.

Объясните, пожалуйста, логику, что именно делает Excel

 
Да для меня самого это "очень сильное колдунство"...
Выражение вида (Vendor=B2)+(B2="") дает 1 в двух случаях и аналогично выражению ИЛИ(Vendor=B2; B2="") - которое тут не работает.
Можно оставить в Исходной таблице несколько строк для компактного примера и через "Формулы - Вычислить формулу" смотреть, что происходит с массивами внутри СУММПРОИЗВ().
Кстати, -- и () можно убрать, упростив:
Код
=СУММПРОИЗВ((Vendor=B2)+(B2="");(Family=C2)+(C2="");(Socket=D2)+(D2="");(FormFactor=E2)+(E2=""))
Изменено: andypetr - 24.04.2024 09:34:57
 
Так пошустрей должно быть:
=СЧЁТЕСЛИМН(Vendor;ЕСЛИ(B2="";"*";B2);Family;ЕСЛИ(C2="";"*";C2);Socket;ЕСЛИ(D2="";"*";D2);FormFactor;ЕСЛИ(E2="";"*";E2))
 
Добрый день! В продолжение темы  А в PQ это реализуемо? особенно при увеличении условий
Страницы: 1
Наверх