Excel统计单日昼夜数据非0非字母的有效天数技术求助
简洁统计符合条件的天数解决方案
核心逻辑回顾
需要统计的是:单日的昼/夜数据中至少有一个是大于0的数字,则该天计为1,最终求和总天数。
方案1:SUMPRODUCT+MMULT(兼容所有Excel版本)
用数组运算替代重复的IF嵌套,公式简洁且扩展性强:
=SUMPRODUCT(--(MMULT(--(ISNUMBER(A3:H3)*(A3:H3>0)),{1;1})>0))
公式拆解:
ISNUMBER(A3:H3)*(A3:H3>0):逐个单元格验证是否为大于0的数字,返回由1(符合)和0(不符合)组成的数组MMULT(...,{1;1}):将相邻两列(昼+夜)的验证结果相加,只要其中一个符合,结果就≥1--(...)>0:将“存在符合条件的单元格”的情况转为1,否则为0SUMPRODUCT:对所有日期组的结果求和,得到最终天数
方案2:BYROW+CHOOSECOLS(适用于Excel 365/2021及以上)
利用动态数组函数更直观地分组处理:
=SUM(--(BYROW(CHOOSECOLS(A3:H3,SEQUENCE(4,,1,2),SEQUENCE(4,,2,2)),LAMBDA(r,OR(ISNUMBER(r)*(r>0))))))
公式拆解:
CHOOSECOLS(...):将A3:H3按“昼、夜”拆分为4个独立的日期组BYROW(...,LAMBDA(r,OR(...))):对每个日期组判断是否存在大于0的数字,返回TRUE/FALSE--将布尔值转为1/0,SUM求和得到总天数
优势说明
这两个方案无需重复编写嵌套IF,当日期范围扩展时(比如增加到30天),仅需调整公式中的单元格范围(如A3:BK3)即可,大幅提升公式的可维护性。
内容的提问来源于stack exchange,提问作者Seigneur
相关产品推荐
相关产品推荐

