You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Excel公式求助:忽略空白单元格统计两类分数出现情况的次数

Excel公式求助:忽略空白单元格统计两类分数出现情况的次数

嗨,我来帮你搞定这个Excel自动化统计的问题!针对你提到的两个需求,我整理了适配大样本量的公式,完全能忽略空白单元格,直接套用就行:


需求1:统计「当天所有非空白分数都是1或2」的天数

假设你的数据结构是:每个受试者占一行,Day1的分数在B2:D2(每天3个分数单元格),Day2在E2:G2,以此类推直到Day21。你可以把下面的公式放到对应受试者的结果列(比如AA2):

=SUMPRODUCT(--(SUMPRODUCT(--(OFFSET(B2,0,(ROW($1:$21)-1)*3,1,3)={1,2}))=COUNTA(OFFSET(B2,0,(ROW($1:$21)-1)*3,1,3))))

公式说明:

  • OFFSET(B2,0,(ROW($1:$21)-1)*3,1,3):定位到每一天的分数单元格范围,其中的3是你每天的分数列数,一定要根据自己的实际表格调整(比如每天2列就改成2)
  • SUMPRODUCT(--(范围={1,2})):统计当天所有1和2的数量
  • COUNTA(范围):统计当天的非空白单元格总数
  • 当两者相等时,说明当天所有非空白分数都是1或2,--把这个判断结果转成1/0,最后外层SUMPRODUCT求和就是符合条件的天数

如果你的Excel是365/2021版本,用动态数组公式更简洁:

=SUM(--(BYCOL(CHOOSECOLS(B2:ZZ2,SEQUENCE(21,,1,3)),LAMBDA(x,SUM(--(x={1,2}))=COUNTA(x)))))

需求2:统计「连续两天的分数范围中存在1或2」的次数

21天共有20组连续两天(Day1&Day2、Day2&Day3…Day20&Day21),下面的公式可以统计其中至少包含一个1或2的组数量:

=SUMPRODUCT(--(SUMPRODUCT(--(OFFSET(B2,0,(ROW($1:$20)-1)*3,1,6)={1,2}))>0))

公式说明:

  • OFFSET(B2,0,(ROW($1:$20)-1)*3,1,6):定位到每组连续两天的合并范围,62*每天分数列数(比如每天2列就改成4)
  • SUMPRODUCT(--(范围={1,2}))>0:判断这组连续两天里是否存在1或2
  • 同样用--转成1/0后求和,得到符合条件的连续天数组合数

Excel 365版本的简化公式:

=SUM(--(BYCOL(CHOOSECOLS(B2:ZZ2,SEQUENCE(20,,1,3)),LAMBDA(x,SUM(--(TOROW(x)={1,2}))>0))))

通用注意事项:

  1. 把公式里的B2:ZZ2替换成你实际的受试者分数所在的行范围
  2. 所有涉及到3的地方,都要改成你每天的分数列数,别直接照搬哦
  3. 旧版本Excel(2019及以前)建议用SUMPRODUCT版本,不需要按Ctrl+Shift+Enter,直接回车就行

备注:内容来源于stack exchange,提问作者Elemen00

火山引擎 最新活动