You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets ArrayFormula仅返回首值 如何实现双表按起止日期自动求和

问题原因与解决方案

错误根源

你编写的数组公式仅首行结果正确,核心原因是SUMIFS本身不支持原生的逐行数组匹配逻辑。即便外层套了ArrayFormula,当你给SUMIFS传入O2:O、P2:P这类数组作为条件时,函数只会读取数组的第一个值(即O2、P2)进行全局计算,最终所有行都会返回和首行一致的结果。

正确实现方案

使用MAP函数同时遍历起始日期列和结束日期列,逐行传入参数到SUMIFS中计算即可实现自动向下迭代整列的效果。将以下公式写入你要输出结果的列的第一行(如Q2),会自动向下溢出所有行的结果,无需手动拖拽:

=MAP(O2:O,P2:P,LAMBDA(start_date,end_date,
IF(OR(ISBLANK(start_date),ISBLANK(end_date)),"",
SUMIFS('Auto Expenses'!$J$7:$J,'Auto Expenses'!$F$7:$F,">="&start_date,'Auto Expenses'!$F$7:$F,"<="&end_date)
+
SUMIFS('Business Expenses'!$J$7:$J,'Business Expenses'!$F$7:$F,">="&start_date,'Business Expenses'!$F$7:$F,"<="&end_date)
)))

方案说明

  • MAP(O2:O,P2:P,LAMBDA(start_date,end_date,...)):逐行配对O列的起始日期和P列的结束日期,作为参数传入后续计算逻辑
  • 内层IF判断:如果当前行的起始或结束日期为空,返回空值,避免出现无效计算结果
  • 两个SUMIFS分别统计两个工作表中落在对应日期范围内的支出总和,相加后即为当前行的总支出

内容的提问来源于stack exchange,提问作者Evans Raymond

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:15:11