[英]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.