Google Sheets如何组合Filter、Query与MINIFS计算最近待付账款金额
无硬编码的最近期待付款汇总公式方案
你可以直接用以下单公式实现需求,无需辅助列、无需硬编码指定付款日期列,新增付款日期列后也会自动适配:
=QUERY( FILTER(N:O, INDIRECT(REGEXEXTRACT(ADDRESS(1, MATCH(MINIFS(P1:1, P1:1, ">"&TODAY()), 1:1, 0)), "[A-Z]+")&":"®EXEXTRACT(ADDRESS(1, MATCH(MINIFS(P1:1, P1:1, ">"&TODAY()), 1:1, 0)), "[A-Z]+")) <> ""), "SELECT Col1, SUM(Col2), Col1*SUM(Col2) GROUP BY Col1 LABEL Col1 '单价', SUM(Col2) '数量', Col1*SUM(Col2) '总金额' FORMAT Col1 '0.00', SUM(Col2) '0', Col1*SUM(Col2) '0.00'" )
逻辑拆解
- 首先修正之前MINIFS的取值范围:取第一行的表头日期作为取值范围
MINIFS(P1:1, P1:1, ">"&TODAY()),准确拿到最近的未来付款日期值 - 用
MATCH函数定位该日期在表头行对应的列序号,再通过地址提取得到对应列的字母标识,全程动态计算不会绑定固定列号 - 用
FILTER筛选出该付款日列不为空的行,提取对应行的单价、数量作为QUERY的数据源 - 最后用QUERY按单价分组汇总,直接生成带表头、带规范数值格式的目标结果表
适配调整说明
如果你的付款日期起始列不是P列,只需修改MINIFS(P1:1, P1:1, ">"&TODAY())里的P1为你实际的付款日期起始列第一行单元格即可,其余部分无需调整。
内容的提问来源于stack exchange,提问作者user1114
相关产品推荐
相关产品推荐

