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

Excel技术问询:用标准函数查询累计金额为负的日期数组及首尾日期

Excel 无辅助列实现累计金额负值日期查询

1. 获取累计金额为负的日期列表

假设日期存于A2:A100,每日金额存于B2:B100,以下分版本给出公式:

Excel 365/2021(动态数组)

直接生成完整日期数组:

=FILTER(A2:A100, SCAN(0, B2:B100, LAMBDA(a,b,a+b)) < 0)
  • 逻辑:SCAN函数逐行计算累计金额,FILTER筛选出累计值小于0的对应日期。

旧版Excel(无动态数组)

使用数组公式(输入后按Ctrl+Shift+Enter确认),下拉填充至出现错误值:

=INDEX(A2:A100, SMALL(IF(SCAN(0, B2:B100, LAMBDA(a,b,a+b)) < 0, ROW(A2:A100)-ROW(A2)+1), ROWS($1:1)))
  • 逻辑:IF标记所有负累计的行位置,SMALL按顺序提取行号,INDEX返回对应日期。

2. 首次出现负累计的日期

=INDEX(A2:A100, MATCH(TRUE, SCAN(0, B2:B100, LAMBDA(a,b,a+b)) < 0, 0))
  • 逻辑:MATCH定位第一个累计值小于0的位置,INDEX返回对应日期。旧版Excel需按Ctrl+Shift+Enter输入。

3. 末次出现负累计的日期

通用版本(兼容所有Excel)

数组公式(按Ctrl+Shift+Enter确认):

=INDEX(A2:A100, MAX(IF(SCAN(0, B2:B100, LAMBDA(a,b,a+b)) < 0, ROW(A2:A100)-ROW(A2)+1)))
  • 逻辑:IF提取所有负累计的行号,MAX取最后一个位置,INDEX返回对应日期。

Excel 365简化版

=XLOOKUP(TRUE, SCAN(0, B2:B100, LAMBDA(a,b,a+b)) < 0, A2:A100,,0,-1)
  • 逻辑:XLOOKUP的-1参数指定从后往前查找,直接返回最后一个符合条件的日期。

内容的提问来源于stack exchange,提问作者Dmitry Leushkin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:31:14