我有一系列值(比如说H6:H20),其中包含值" g"," y"或" r"。
为了计算每个状态并将其用作圆环图的来源,我制作了一系列3个单元格来计算=COUNTIF($H$6:$H$20,"Green")
等...
然后我尝试更优雅,并创建一个数组公式,返回每个字母的计数,我最终可以将其用作图表的来源,而不需要中间计算范围。但我无法做到这一点。
输入:
g
r
y
g
g
r
g
g
y
预期输出(使用单数组公式):
5
2
2
我的尝试:=COUNTIF({"g","y","r"},$H$6:$H$20)
- >错误
其他尝试:=SUMPRODUCT(1*$H$6:$H$20={"g","y","r"})
- >错误
(两者都输入3个单元格范围, Ctrl + Shift + 输入,当然)
什么是正确的公式?
答案 0 :(得分:2)
这就是FREQUENCY功能的用途。选择3个单元格并按以下公式按CTRL + SHIFT + ENTER:
=FREQUENCY(MATCH($H$6:$H$20,{"g","y","r"},0),MATCH($H$6:$H$20,{"g","y","r"},0))
答案 1 :(得分:2)
您不需要数组公式,但您确实需要将该公式存储为名称管理器中的定义名称,例如:
名称: Series_Values
指: Settings.Builder settingsBuilder = Settings.builder()
.put("cluster.name", clusterName);
根据需要更改工作表名称(此处为=COUNTIF(Sheet1!$H$6:$H$20,{"g","y","r"})
。
然后,您可以使用以下语法为系列值条目添加系列到图表:
Sheet1
同样,根据需要修改工作表名称,但请务必保留感叹号和撇号(如果工作表名称不包含间距,则后者不是必需的,但无论如何这是一个好习惯)。
Excel实际上会将其修改为:
='Sheet1'!Series_Values
(其中=Book1!Series_Values
是假设的工作簿名称),虽然这在这里并不重要。
此致
答案 2 :(得分:0)
假设这不是动态的,并且您有一定数量的行,则可以使用以下内容。假设您将此公式放在行20
中:
=COUNTIF($A$1:$A$9,INDEX({"g","r","y"},ABS(20-(ROW()+1))))
然后向下拖动。
编辑:如果您想要在同一个单元格中,只需合并COUNTIF()
?
=COUNTIF($A$1:$A$9,"g")&","&COUNTIF($A$1:$A$9,"r")&","&COUNTIF($A$1:$A$9,"y")
答案 3 :(得分:0)
=IF({"g","y","r"}="g",COUNTIF($H$6:$H$20,"g"),IF({"g","y","r"}="y",COUNTIF($H$6:$H$20,"y"),IF({"g","y","r"}="r",COUNTIF($H$6:$H$20,"r"))))