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

在QUERY函数内计算到期日,筛选超30天逾期记录

在Google Sheets的QUERY函数中直接计算到期日筛选逾期记录

可以直接在QUERY函数内完成到期日计算,无需新增辅助列,以下是可行的公式及说明:

可行公式

假设你的账单日期在A列,付款条件在B列,数据范围为A2:B,公式如下:

=QUERY(A2:B, "SELECT A, B WHERE DATEVALUE(A) + INTEGER(REGEXEXTRACT(B, '\d+')) < DATEVALUE('"&TEXT(TODAY()-30,"yyyy-mm-dd")&"')")

公式拆解

  • DATEVALUE(A):将A列的账单日期转换为可计算的数值格式,避免日期格式导致的运算错误
  • INTEGER(REGEXEXTRACT(B, '\d+')):通过正则表达式提取B列付款条件中的数字部分(例如从Net 30或15 Days中提取30或15),并转为整数类型用于日期运算
  • DATEVALUE('"&TEXT(TODAY()-30,"yyyy-mm-dd")&"'):计算并转换出「当前日期往前推30天」的数值,作为逾期判断的阈值
  • 核心逻辑:账单日期 + 付款期限 < 30天前的日期,即到期日已超过30天,符合逾期筛选要求

你原写法的问题说明

你尝试的"SELECT A WHERE A + RIGHT(B:B,2) - 30 > 30"存在几个问题:

  1. QUERY函数中需使用列标识(如B)而非整列引用B:B
  2. RIGHT(B,2)仅能提取末尾两位字符,若付款天数是一位数(如Net 7)或格式不固定,会提取到无效内容;正则表达式REGEXEXTRACT(B, '\d+')能适配任意长度的数字提取,通用性更强
  3. 直接用日期单元格加数字可能因格式问题导致运算异常,转为数值后计算更可靠

注意事项

  • 确保A列是标准日期格式,否则DATEVALUE会返回错误
  • 若付款条件有特殊格式,只需调整正则表达式即可(例如格式为30/Net时,'\d+'依然能正确提取数字)

内容的提问来源于stack exchange,提问作者Rex Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:35:28