[英]sumifs with 3 or more multiple array criteria
我有一個SUMIFS
,可以處理下拉列表和復選框中包含的值。 下拉列表中的值用作AND准則(即,以下拉列表中的該值與下拉列表中的該值為條件的列求和),但是當我想在復選框中包括這些值時,事情變得棘手根據用戶輸入是動態的。 本質上,復選框中的值需要用作OR條件(即,如果選擇了框1,則基於該值對一列求和;如果選擇了框2,則以該值為基礎,也以下拉菜單中的值為條件)。
在線示例顯示,通過執行以下操作,您可以使用OR條件獲得總和:
{=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個或多個作為OR條件的多個數組來執行此操作,這些數組在公式中被引用為單元格引用? 像這樣:
{=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...,
求和一個范圍,該范圍取決於單元格$ A1,$ B1,$ C1中的值。 這些是AND條件。
$E:$E,$AA10:$AC10,
'在$ AA10:$ AC10中包含動態值,這些值的值分別為:5年,10年,15年。 這些是OR條件。
$F:$F,{$AA11;$AC11},
”還包括針對不同單元格范圍的這些動態值:“ 5天,10天,15天”。 這些是OR條件。
$G:$G,{$AA12;$AJ12})
)}
並包括這些多個動態值,這些值也是OR標准:“ 5個蘋果,10個梨,15個香蕉”。
可以選擇動態值的任何組合。
您可以對兩個代表最后一個標准的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")))
¹ 樣本數據:
列A充滿隨機數。
B列中填充= CHAR(RANDBETWEEN(87,89))
C列中填充= RANDBETWEEN(0,5)
D列中填充= CHAR(RANDBETWEEN(65,67))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.