Искам да изчисля сумата по няколко критерия за таблицата:
A B C D
1 crit1 crit2 code amount
2 a b code1 10
3 a b code3 20
4 a b code2 100
5 a b code1 80
6 a b code4 30
Също така имам набор от кодове, за да изключвам:
A B C D
...........
10 exclude rows
11 code1
12 code8
Формулата ми за маркираната клетка за резултати изглежда така: SUMIFS(D2:D6,A2:A6,"a",B2:B6,"b")
, Как мога да променя моите SUMIFS
формула за филтриране по кодове, които не са в изключват кодовете обхват (A11:A12
)?
Отговори:
6 за отговор № 1=SUMPRODUCT(
(A2:A6="a") * (B2:B6="b") * ISNA(MATCH(C2:C6,A11:A12,0)),
D2:D6)
MATCH
връща #N/A!
грешка, когато тя не може да намери търсената стойност (код) в масива за търсене (списък с изключени редове). ISNA()
преобразува мачовете до FALSE
и несъвпадения (#N/A!
) да се TRUE
, Те са "и" ed "с другите ви критерии, като използвате математическия оператор *
; TRUE
става 1 и FALSE
става 0 в процеса. SUMPRODUCT
накрая обобщава сумите, които се приравняват с 1 "s (а не с 0" s).
3 за отговор № 2
Отговорът на Жан-Франсоа Корбет е най-подходящият и разбираем тук.
Но само за да покаже, че може да бъде постигната чрез него SUMIFS
(макар и с цената на някакво объркване!):
=SUM(MMULT(MMULT({1,1},SUMIFS(D2:D6,A2:A6,"a",B2:B6,"b",C2:C6,{"=","<>"}&A11:A12)),{-1;1}))/2