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

Google Sheets用ARRAYFORMULA+SUMIFS处理日期不生效问题求助

Google Sheets ARRAYFORMULA 逾期余额计算解决方案

方案1:QUERY预聚合+VLOOKUP(大数据量优先推荐)

该方案仅执行1次聚合计算,批量匹配结果,性能远高于逐行计算,适合十万行以上的数据集:

公式直接粘贴到O1单元格即可自动扩展整列

={"overdue";
ARRAYFORMULA(IF(LEN(A2:A),
  IFERROR(VLOOKUP(A2:A,
    QUERY(R:V,"SELECT R, SUM(V) WHERE Q < date '"&TEXT(TODAY(),"yyyy-mm-dd")&"' GROUP BY R"),
  2, 0), 0) - M2:M,
))}
  • 逻辑说明:
    1. 先用QUERY函数按客户维度(R列)一次性统计所有付款日期(Q列)早于今日的应付总额
    2. 用VLOOKUP批量匹配每行客户对应的逾期总额
    3. 减去当前行的已付金额(M列)得到当前行的逾期余额
    4. 外层IF(LEN(A2:A))控制仅A列有值的行返回结果,空白行不计算

方案2:BYROW+SUMIFS(多复杂条件场景适用)

如果需要多维度自定义判断条件,可使用LAMBDA类逐行计算函数,原生支持数组扩展:

公式直接粘贴到O1单元格即可自动扩展整列

={"overdue";
BYROW(A2:A, LAMBDA(curr_cus,
  IF(curr_cus="",,
    SUMIFS(V:V, R:R, curr_cus, Q:Q, "<"&TODAY()) - INDEX(M:M, ROW(curr_cus))
  )
))}

原公式失效原因

SUMIF/SUMIFS本身为全局聚合函数,单独嵌套ARRAYFORMULA时仅返回单值聚合结果,不会逐行触发计算;你采用的拼接条件写法存在维度不匹配问题,条件范围与判断条件的行无法一一对应,因此无法得到正确的逐行结果。


内容的提问来源于stack exchange,提问作者Union Movil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:54:04