如何统计表格中同一日期下两个Variance同时出现的次数?
解决方案:统计多组日期下双Variance非空的次数
一、统计所有满足条件的总次数
如果需要统计表格中所有「日期非空、对应Variance 1和Variance 2都非空」的组的总次数,可以使用SUMPRODUCT函数结合列偏移判断:
=SUMPRODUCT(--(MOD(COLUMN(A2:ZZ100)-COLUMN(A2),3)=0), --(A2:ZZ100<>""), --(OFFSET(A2:ZZ100,0,1)<>""), --(OFFSET(A2:ZZ100,0,2)<>""))
MOD(COLUMN(...)-COLUMN(A2),3)=0:筛选出每组的第一列(日期列)A2:ZZ100<>"":确保日期单元格非空OFFSET(...,0,1)<>""与OFFSET(...,0,2)<>"":分别判断对应组的Variance 1、Variance 2单元格非空--将布尔值转换为1/0,SUMPRODUCT自动求和所有符合条件的组数
注意:把公式中的A2:ZZ100替换为你实际的数据范围。
二、按日期分组统计次数
如果需要针对某个特定日期,统计其对应的双Variance非空次数,可使用以下公式:
=SUMPRODUCT(--(MOD(COLUMN(A2:ZZ100)-COLUMN(A2),3)=0), --(A2:ZZ100=K2), --(OFFSET(A2:ZZ100,0,1)<>""), --(OFFSET(A2:ZZ100,0,2)<>""))
将K2替换为存放目标日期的单元格即可。
进阶方法:转结构化数据后统计
如果需要一次性得到所有日期的统计结果,可先将多列分组的数据转换为标准3列结构,再用QUERY统计:
- 先执行数据转换(替换实际数据范围):
=MAKEARRAY(ROWS(A2:A)*INT(COLUMNS(A2:ZZ)/3),3,LAMBDA(r,c,INDEX(A2:ZZ,INT((r-1)/INT(COLUMNS(A2:ZZ)/3))+2,MOD(r-1,INT(COLUMNS(A2:ZZ)/3))*3+c)))
- 对转换后的数据集执行统计:
=QUERY(上述转换公式的结果, "SELECT Col1, COUNT(Col1) WHERE Col2<>'' AND Col3<>'' GROUP BY Col1",1)
这样会生成一个包含日期和对应次数的统计表格。
内容的提问来源于stack exchange,提问作者Duy Linh
相关产品推荐
相关产品推荐

