Страницы: 1
RSS
Суммирование по нескольким НЕ единичным условиям. Есть ли более изящный способ?
 
Добрый день, подскажите пожалуйста, есть ли какой то более изящный способ решения задачи в которой необходимо просуммировать что то по нескольким не единичным условиям.
Пример во вложении.
Надо посчитать сумму значений в колонке D, если Условие 1 = Кот, Условие2 = ИЛИ Рыжий ИЛИ Белый, Условие 3 = ИЛИ Толстый ИЛИ Худой.
Понимаю что можно например решить задачу с помощью БДСУММ, как показано в примере, но тогда надо рисовать целую таблицу условий.
можно сделать вообще дедовским способом с помощью СУММЕСЛИМН и там будет несколько слагаемых и формула будет длинная и не удобная.
А есть какой то более красивый способ решить такую задачу, например с помощью имен? Т.е. я задаю имя диапазону условий Цветов {Рыжий;Белый} и Типа {Толстый;Худой} и как то их использовать в формуле? Если да то как?
Возможно есть другой способ?
Подобная задача вызвана необходимостью проанализировать огромную таблицу данных по множеству различных условий и их комбинаций, и каждый раз рисовать таблицы для условий БД или длинные формулы не хочется. Гораздо удоблее было бы, например решение через Имена, но не понимаю как их использовать в формуле что бы они удовлетворяли условию ИЛИ.
Заранее спасибо.
 
Формула массива для доп. столбца:
=--И(И(B2=$K$2;ИЛИ(C2=$L$2:$L$3);ИЛИ(D2=$M$2:$M$3)))
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Спасибо но способ не изящный.
под каждую комбинацию условий придется формировать отдельный столбец?
У меня таких комбинация порядка 50 штук.
Потому я и хотел сделать както так, что я, допустим, все условия по какому то параметру просто пишу в столбец, например, рыжий, белый, в крапинку, серый, оранжевый и тд и тд, у меня таких тоже очень много, по некоторым больше 100, но я хотя бы просто мог бы все 100 кинуть в столбец а потом на него сослаться это куда проще.
А когда у тебя 100 условий, и еще 50 комбинаций таких условий... то это по итогу выходит очень жестко. Нужно что то проще.
 
Макросом. UDF, как частный случай. Запрос SQL, Возможно Power Query.
Изменено: Sanja - 20.04.2018 16:37:42
Согласие есть продукт при полном непротивлении сторон
 
не тестируйте
Изменено: Сергей - 20.04.2018 16:41:41 (не обратил внимания что хочется все в куче)
Лень двигатель прогресса, доказано!!!
 
Понимаю что макрсом можно хоть дом построить. но хочется именно какой то способ обычный. Да и случай довольно часто встречающися в моей практике. Когда есть огромная таблица, и там куча столбцов, и тебе надо провести анализ, я условия динамичные и комбнированные. Каждый раз писать макрос... да и не очень я в макросах.
 
Antijoke2, добрый вечер! Не нужно дом строить, он уже есть, посмотрите ВНИМАТЕЛЬНО это.
Добавляйте условия ("And" Вам в помощь)
 
=SUM(SUMIFS(D:D;A:A;O2;B:B;P2:P3;C:C;TRANSPOSE(Q2:Q3)))

=SUM(SUMIFS(D:D;A:A;"Кот";B:B;{"Рыжий";"Белый"};C:C;{"Толстый"\"Худой"}))
По вопросам из тем форума, личку не читаю.
 
Мой вариант.
Обнаружил косяк - формула считала количество, а не сумму. Исправил
Обнаружил косяк - формула криво считала, если нет одного из условий. Исправил

Известный мне недочёт - в условия нужно загонять только уникальные значения.
Изменено: Wiss - 20.04.2018 18:04:49
Я не волшебник, я только учусь.
 
БМВ, показалось, что понимаю как работает Ваша формула, но при попытке добавить в животных ещё и собак получаю кривой ответ и не понимаю, как исправить формулу, чтобы она считала верно.
Я не волшебник, я только учусь.
 
Wiss, Вы же не показываете в примере, куда Вы загоняете собак, но хотите, чтобы Вам ответили - как их оттуда выгнать. Попробуйте так поискать:
 
Wiss, нет, собак к котам добавлять нельзя :-). Это ограничение вызвано формрованием матрицы условий, и если последни два организуют двумерную матрицу , для этого и используется TRANSPOSE, то прибавив доп условие к животным получим "синхронный" перебор значений или с цветом или с упитанностью, при этом, если не совпадет размерность, то будет ошибка.
В этом случае поможет только дублирование формулы , для собак отдельно.

Но наверно интереснее всего будет выглядить этот вариант.
=AND(A2="Кот";OR(B2="Рыжий";B2="Белый");OR(C2="Толстый";C2="Худой")) в условии DSUM(A1:D28;4;H6:H7)
или совсем так
=AND(OR(A2={"Кот"});OR(B2={"Рыжий";"Белый"});OR(C2={"Толстый";"Худой"}))

тогда прибавить пса будет просто =AND(OR(A2={"Кот";"Пес"});OR(B2={"Рыжий";"Белый"});OR(C2={"Толстый";"Худой"}))
Изменено: БМВ - 20.04.2018 19:49:03
По вопросам из тем форума, личку не читаю.
 
БМВ, спасибо, Вы открыли мне новые глубины экселя. Сохраню и как-нить при соответствующем настроении постараюсь понять как же оно всё-таки работ
Я не волшебник, я только учусь.
 
Интересный вариант.
А можно ли, например, вместо А2 сослаться на название столбца умной таблицы? Если бы там была умная таблица.
 
FFire, нет. Нужно ссылатся на первую строку данных.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх