我正在尝试对结合{}的几个范围进行查询query({A2:C5, if(C1:C5='something',1,0)}, "select ...")
。但是我得到一个#REF!错误消息Function ARRAY_ROW parameter 2 has mismatched row size. Expected: 4. Actual: 1.
是什么原因?
这是一个详细的示例。假设我有一个这样的表:
id kind color
1 a green
2 a green
3 b green
4 c blue
我想获得一张表格,显示每种绿色的单元格数量:
kind color_count
a 2
b 1
c 0
最初,我尝试使用where子句进行查询:
=query(A2:C5, "select B, count(C) where C='green' group by B", -1)
但这不包括零值的行。因此,我尝试添加一个额外的列,其中绿色的值为1,否则为0,并在不使用where子句的情况下使用SUM:
=query({A2:C5, if(C2:C5="green", 1, 0)}, "select B, sum(D) group by B", -1)
但这给出了上面的$ REF!
作为一种解决方法,我使用公式将D列添加到了表中
=arrayformula(if(C2:C5="green", 1, 0))
然后,以下查询工作并给出所需的结果:
=query(A2:D5, "select B, sum(D) group by B", -1)
但是有可能避免使用这种人造柱吗?
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句