Вставьте диапазон, используя формулу IF в функции SUMIF с несколькими критериями (используя массив формул) - PullRequest
1 голос
/ 26 января 2020

Я использую массив формул с моей функцией sumif, которая имеет несколько критериев и диапазонов для автоматического расширения по заданному столбцу (B). Приведенная ниже формула отлично работает:

=ARRAYFORMULA(SUMIF('DATA'!$N:$N&'DATA'!$U:$U&'DATA'!$V:$V&'DATA'!$BV:$BV,$B$6:$B&$E$30&$D$26&$C$36,'DATA'!$AG:$AG).

Я хочу сделать ее более динамичной c и вставить оператор IF, чтобы фактически ссылаться на диапазон по сравнению с другим на основе определенных условий. Например,

IF($A$6:$A=XX,'DATA'!$N:$N,'DATA'!$M:$M).

Формула нарушается, если я делаю это

=ARRAYFORMULA(SUMIF(IF($A$6:$A=XX,'DATA'!$N:$N,'DATA'!$M:$M)&'DATA'!$U:$U&'DATA'!$V:$V&'DATA'!$BV:$BV,$B$6:$B&$E$30&$D$26&$C$36,'DATA'!$AG:$AG).

Любой способ / обходной путь, чтобы заставить это работать? Я пробовал несколько раз, читаю несколько форумов, но не могу найти ответ.

1 Ответ

0 голосов
/ 26 января 2020

если XX не является именованным диапазоном, оно должно быть в кавычках

try:

=ARRAYFORMULA(SUM(IF(
 IF(A6="XX", 'DATA'!N:N, 'DATA'!M:M)&DATA!U:U&DATA!V:V&DATA!BV:BV=B6:B&E30&D26&C36, 
 DATA!AG:AG, )))

UPDATE:

=ARRAYFORMULA(IFNA(VLOOKUP(B7:B&C7:C, 
 QUERY({DATA!A2:A&DATA!A1, DATA!C2:F; DATA!B2:B&DATA!B1, DATA!C2:F}, 
 "select Col1,sum(Col5) 
  where Col2 = '"&D4&"' 
    and Col4 = '"&D3&"' 
  group by Col1 
  label sum(Col5)''"), 2, 0)))

0

...