基于时间戳按日求和:如何用ARRAYFORMULA/QUERY替换硬编码SUMIF
方案1:用QUERY一步完成(无需单独提取K列日期)
直接在空白单元格输入以下公式即可一次性输出「日期+当日总和」的完整结果,后续新增源数据也会自动更新:
=QUERY( {ARRAYFORMULA(TO_DATE(INT(FILTER(A:A,A:A<>"")))),FILTER(B:B,A:A<>"")}, "SELECT Col1, SUM(Col2) WHERE Col1 IS NOT NULL GROUP BY Col1 ORDER BY Col1 LABEL Col1 '日期', SUM(Col2) '当日总和'", 0 )
公式逻辑说明:
- 先把A列的时间戳截断为纯日期,和B列的数值组成临时数组
- 用QUERY按日期分组求和,同时自定义表头方便直接用于生成图表
方案2:配合现有K列唯一日期,用ARRAYFORMULA自动批量计算
如果要保留已经生成的K列唯一日期,只需要在K列旁的空白列首行对应位置输入以下单条公式,就会自动对应K列所有日期算出总和,不需要逐行写公式:
=ARRAYFORMULA(IF(K:K="",,SUMIF(TO_DATE(INT(A:A)),K:K,B:B)))
公式逻辑说明:
- 自动遍历K列所有单元格,遇到空值返回空,有日期的位置自动调用SUMIF匹配A列日期求和
- 不需要逐行硬编码K2、K3这类单元格引用,K列新增唯一日期时计算列会自动补全结果
内容的提问来源于stack exchange,提问作者derekantrican
相关产品推荐
相关产品推荐

