EXcel COUNT 个值基于不同范围内的多个条件
EXcel COUNT values based on multiple conditions in different ranges
我有一个 Excel 电子表格,包含某些产品之间的所有可能组合,例如a-a, a-b, a-c, b-a, b-b, b-c, c-a, c-b and c-c
。根据这些组合,计算出一个值并将其与历史值进行比较。将这两个值相减,得到 -1、0 或 1。
现在,在另一个电子表格中,我列出了所有产品(所以这里是 a、b 和 c),对于每个产品,我想知道该产品有多少个 -1、0 和 1结果,当它是组合中的第二个产品时,例如我想知道有多少 ...-b 结果为 0。
我的第一个想法是使用一个简单的 COUNTIF
,通过减法遍历范围:COUNTIF(RANGE:0)
。当然,这给出了范围内的所有 0,而不考虑乘积。然后,我尝试 SUM(IF(AND("range of the second product"="b";"range of the subtraction result"=0);1))
,但这会产生 #N/A
。我不确定接下来要尝试什么。
在其他一些相关话题中,建议使用数组,基于http://www.cpearson.com/excel/ArrayFormulas.aspx
因此,我尝试了公式 {=COUNT(("2ndproductrange"="b") * ("resultrange"<0))}
,但这返回了总行数。 {=COUNTIF(("2ndproductrange"="b")*("resultrange");<0)}
的变体不是有效的公式。
在我看来,您正在尝试执行符合 2 个不同条件的 COUNT
操作。正如您所指出的,COUNTIF
公式采用单个条件,而 COUNTIFS
公式采用多个条件。这是我 "think" 它在您的示例范围内的样子:
=COUNTIFS(2ndproductrange;"b";resultrange;"<0")
具体例子如下:
A B C D E F G
---------------------------------------------------------
Historical Value Product Countifs a b c
1 c <0 1 2 0
-1 a 0 0 1 1
-1 b >0 1 2 1
1 b
1 b
0 c
-1 b
0 b
1 a
在上面的示例中,公式为:
=COUNTIFS($B:$B;"a";$A:$A;"<0") =COUNTIFS($B:$B;"b";$A:$A;"<0") =COUNTIFS($B:$B;"c";$A:$A;"<0")
=COUNTIFS($B:$B;"a";$A:$A;"0") =COUNTIFS($B:$B;"b";$A:$A;"0") =COUNTIFS($B:$B;"c";$A:$A;"0")
=COUNTIFS($B:$B;"a";$A:$A;">0") =COUNTIFS($B:$B;"b";$A:$A;">0") =COUNTIFS($B:$B;"c";$A:$A;">0")
对于那些使用逗号 ,
作为列表分隔符语言环境的用户,相同的公式为:
=COUNTIFS($B:$B,"a",$A:$A,"<0") =COUNTIFS($B:$B,"b",$A:$A,"<0") =COUNTIFS($B:$B,"c",$A:$A,"<0")
=COUNTIFS($B:$B,"a",$A:$A,"0") =COUNTIFS($B:$B,"b",$A:$A,"0") =COUNTIFS($B:$B,"c",$A:$A,"0")
=COUNTIFS($B:$B,"a",$A:$A,">0") =COUNTIFS($B:$B,"b",$A:$A,">0") =COUNTIFS($B:$B,"c",$A:$A,">0")
我有一个 Excel 电子表格,包含某些产品之间的所有可能组合,例如a-a, a-b, a-c, b-a, b-b, b-c, c-a, c-b and c-c
。根据这些组合,计算出一个值并将其与历史值进行比较。将这两个值相减,得到 -1、0 或 1。
现在,在另一个电子表格中,我列出了所有产品(所以这里是 a、b 和 c),对于每个产品,我想知道该产品有多少个 -1、0 和 1结果,当它是组合中的第二个产品时,例如我想知道有多少 ...-b 结果为 0。
我的第一个想法是使用一个简单的 COUNTIF
,通过减法遍历范围:COUNTIF(RANGE:0)
。当然,这给出了范围内的所有 0,而不考虑乘积。然后,我尝试 SUM(IF(AND("range of the second product"="b";"range of the subtraction result"=0);1))
,但这会产生 #N/A
。我不确定接下来要尝试什么。
在其他一些相关话题中,建议使用数组,基于http://www.cpearson.com/excel/ArrayFormulas.aspx
因此,我尝试了公式 {=COUNT(("2ndproductrange"="b") * ("resultrange"<0))}
,但这返回了总行数。 {=COUNTIF(("2ndproductrange"="b")*("resultrange");<0)}
的变体不是有效的公式。
在我看来,您正在尝试执行符合 2 个不同条件的 COUNT
操作。正如您所指出的,COUNTIF
公式采用单个条件,而 COUNTIFS
公式采用多个条件。这是我 "think" 它在您的示例范围内的样子:
=COUNTIFS(2ndproductrange;"b";resultrange;"<0")
具体例子如下:
A B C D E F G
---------------------------------------------------------
Historical Value Product Countifs a b c
1 c <0 1 2 0
-1 a 0 0 1 1
-1 b >0 1 2 1
1 b
1 b
0 c
-1 b
0 b
1 a
在上面的示例中,公式为:
=COUNTIFS($B:$B;"a";$A:$A;"<0") =COUNTIFS($B:$B;"b";$A:$A;"<0") =COUNTIFS($B:$B;"c";$A:$A;"<0")
=COUNTIFS($B:$B;"a";$A:$A;"0") =COUNTIFS($B:$B;"b";$A:$A;"0") =COUNTIFS($B:$B;"c";$A:$A;"0")
=COUNTIFS($B:$B;"a";$A:$A;">0") =COUNTIFS($B:$B;"b";$A:$A;">0") =COUNTIFS($B:$B;"c";$A:$A;">0")
对于那些使用逗号 ,
作为列表分隔符语言环境的用户,相同的公式为:
=COUNTIFS($B:$B,"a",$A:$A,"<0") =COUNTIFS($B:$B,"b",$A:$A,"<0") =COUNTIFS($B:$B,"c",$A:$A,"<0")
=COUNTIFS($B:$B,"a",$A:$A,"0") =COUNTIFS($B:$B,"b",$A:$A,"0") =COUNTIFS($B:$B,"c",$A:$A,"0")
=COUNTIFS($B:$B,"a",$A:$A,">0") =COUNTIFS($B:$B,"b",$A:$A,">0") =COUNTIFS($B:$B,"c",$A:$A,">0")