суффиксы с 3 или более множественными критериями массива - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть SUMIFS, который работает от значений, содержащихся в раскрывающихся списках и флажках.Значения в раскрывающихся списках работают в качестве критериев AND (т. Е. Суммируют столбец, условный для этого значения в раскрывающемся меню И это значение в раскрывающемся списке), но все становится сложнее, когда я хочу включить значения в флажки, которыеявляются динамическими в зависимости от ввода пользователя.По сути, значения в флажке должны работать как критерии ИЛИ (т. Е. Суммировать столбец на основе этого значения, если выбран блок 1, ИЛИ это значение, если выбран блок 2, также зависит от значений в раскрывающемся списке).

Примеры онлайн показывают, что вы можете получить суммы с критериями ИЛИ, выполнив следующие действия:

{=SUM(SUMIFS(sumrange,
    criteriarange0,"x",
    criteriarange1,{"1","2","3"},
    criteriarange2,{"A";"B"}
))}

, где
"x" - значение в раскрывающемся списке,
{"1","2","3"} являются результирующими значениями, если отмечены три соответствующих флажка,
{"A";"B"} являются другим набором результирующих значений, если отмечены соответствующие флажки.
1,2,3, A, B все являются логическимив том смысле, что они могут измениться со значения на 0, если флажок не отмечен (поэтому имеется матрица комбинаций).

Мой вопрос: как вы делаете это с 3 или более множественными массивами, которые действуют как условия ИЛИ, которые указаны в формуле как ссылки на ячейки?Примерно так:

{=SUM(SUMIFS(sumrange, 
    criteriarange0,"x", 
    criteriarange1,value_range1, 
    criteriarange2,value_range2, 
    criteriarange3,value_range3
))}

Я нашел что-то, связанное с формулами SUMPRODUCT и ISNUMBER(MATCH(), но не могу заставить его работать.Кроме того, таблица имеет 500 000 строк x 100 столбцов, поэтому формула должна быть эффективной.

Вот грубая формула, которую я сейчас использую с аннотациями:

={SUM(

SUMIFS(sumrange,$A:$A, $A1, $B:$B, $B1, $C:$C, $C1...,  

'sum aдиапазон обусловлен значениями в ячейках $ A1, $ B1, $ C1.Это критерии AND.

$E:$E,$AA10:$AC10, 

'включает динамические значения в $ AA10: $ AC10, которые имеют значения: 5 лет, 10 лет, 15 лет.Это ИЛИ критерии.

$F:$F,{$AA11;$AC11}, 

'также включают эти динамические значения для другого диапазона ячеек: «5 дней, 10 дней, 15 дней».Это критерии ИЛИ.

$G:$G,{$AA12;$AJ12})
)} 

', а также включают эти множественные динамические значения, которые также являются критериями ИЛИ: «5 яблок, 10 груш, 15 бананов».

Может быть выбрана любая комбинация динамических значений.

1 Ответ

0 голосов
/ 07 декабря 2018

Вы можете суммировать итоговые значения, полученные по двум отдельным SUMIFS, представляющим последние критерии.

=SUM(SUM(SUMIFS(A:A, B:B, "x", C:C, {1,2,3}, D:D, "a")), 
     SUM(SUMIFS(A:A, B:B, "x", C:C, {1,2,3}, D:D, "b")))

Последние два критерия нельзя использовать в том же макете, что и вторые критерии.Это приводит к путанице и просчету во время циклического расчета массива.Однако если последний критерий можно считать другим макетом в качестве второго критерия, циклы расчета должны давать правильный результат.TRANSPOSE изменит «направление» последнего массива критериев, тем самым изменив способ его вычисления.

=SUM(SUMIFS(A:A, B:B, "x", C:C, {1,2,3}, D:D, TRANSPOSE({"a","b"})))

Это даст тот же результат¹, что и в первой формуле.

Добавление третьегомассив критериев на основе OR, вам нужно будет объединить два метода.

=SUM(SUM(SUMIFS(A:A, B:B, "x", C:C, {1,2,3}, D:D, TRANSPOSE({"a","b"}), E:E, "m")),
     SUM(SUMIFS(A:A, B:B, "x", C:C, {1,2,3}, D:D, TRANSPOSE({"a","b"}), E:E, "n")),
     SUM(SUMIFS(A:A, B:B, "x", C:C, {1,2,3}, D:D, TRANSPOSE({"a","b"}), E:E, "o")))

¹ Пример данных: Столбец А заполнен случайными числами.Колонка B заполнена = CHAR (RANDBETWEEN (87, 89))Столбец C заполнен = RANDBETWEEN (0, 5)Столбец D, заполненный = CHAR (RANDBETWEEN (65, 67))

...