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

Excel公式需求:计算距离上一次Ranch列TRUE值的天数

计算距离上一次Ranch列TRUE值的天数

嘿,我来帮你搞定这个需求!你要的是在表格里新增一列,自动计算距离上一次Ranch列出现TRUE的天数对吧?结合你给出的示例数据,我整理了适用于Excel和Google Sheets的两种实现方案:

先明确表格结构

假设你的数据从第1行表头开始:

  • A列:Date(日期)
  • B列:Day(星期)
  • C列:Ranch(TRUE/FALSE标记)
  • D列:新增的Days since last Ranch(目标列)

分步实现

1. 第一行数据(D2单元格)

按照你的要求,第一行如果是FALSE就硬编码0,直接在D2输入:

0

2. 从第三行开始的通用公式

方案一:支持XLOOKUP的版本(Excel 2021+/Google Sheets)

在D3单元格输入以下公式,然后下拉填充到所有行:

=IF(C3=TRUE, 0, A3 - XLOOKUP(TRUE, $C$2:C2, $A$2:A2, 0, 0, -1))

公式逻辑说明:

  • 先判断当前行的Ranch值是否为TRUE,如果是直接返回0;
  • 如果是FALSE,用XLOOKUP从当前行往上(倒序查找)找到最近的TRUE值,返回对应的日期;
  • 用当前行的日期减去找到的最近TRUE日期,得到间隔天数。

方案二:兼容旧版Excel的版本(无XLOOKUP)

如果你的Excel版本不支持XLOOKUP,用这个公式替代(同样在D3输入后下拉):

=IF(C3=TRUE,0,A3-LOOKUP(2,1/($C$2:C2=TRUE),$A$2:A2))

公式逻辑说明:

  • 1/($C$2:C2=TRUE)会把范围内的TRUE转换成1,FALSE转换成错误值;
  • LOOKUP(2, ...)会忽略错误值,找到最后一个1对应的日期(也就是最近的TRUE日期);
  • 最后用当前日期减去该日期得到间隔天数,当前行是TRUE时直接返回0。

验证示例数据

用你给出的测试数据验证,结果完全符合预期:

DateDayRanchDays since last Ranch
25/05/2018FridayFALSE0(硬编码)
26/05/2018SaturdayTRUE0
27/05/2018SundayFALSE1
28/05/2018MondayFALSE2
29/05/2018TuesdayTRUE0
30/05/2018WednesdayFALSE1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:13:01