Google Sheets公式开发:重复项忽略首项并累加7天日期
Google Sheets公式:重复项日期累加7天(忽略首个实例)
需求实现
针对你的场景,我们需要达成:
- 根据C列内容匹配A列原始数据,提取B列对应的初始日期
- 首个匹配实例保留原日期,后续每个重复实例在原日期基础上累加7天
- 当B列对应单元格为空时,D列自动留空;后续B列填入日期后,D列同步更新
下拉式公式(逐行适用)
在D1单元格输入以下公式,然后下拉填充至所有需要的行:
=IFERROR(VLOOKUP(C1,A:B,2,FALSE)+(COUNTIF($C$1:C1,C1)-1)*7,"")
公式拆解
VLOOKUP(C1,A:B,2,FALSE):精准匹配C1在A列对应的B列初始日期,若匹配失败(如B列空、C列内容不在A列)则返回错误COUNTIF($C$1:C1,C1)-1:统计从C1到当前行中,当前C列内容出现的次数,减1后得到需要累加7天的次数(首个实例次数为1,减1后为0,不加天数;第二个实例次数为2,减1后为1,加7天,以此类推)IFERROR(..., ""):捕获VLOOKUP的错误结果,返回空值,符合空值处理需求
数组公式(一键批量填充)
如果希望一次性处理整个D列,无需手动下拉,可使用数组公式(直接在D1单元格输入即可):
=ARRAYFORMULA(IF(C:C="", "", IFERROR(VLOOKUP(C:C,A:B,2,FALSE)+(COUNTIFS(C:C,C:C,ROW(C:C),"<="&ROW(C:C))-1)*7,"")))
数组公式补充说明
ARRAYFORMULA:让公式批量作用于C列所有行COUNTIFS(C:C,C:C,ROW(C:C),"<="&ROW(C:C)):替代下拉版的COUNTIF,实现对每一行的累计计数,统计当前行及以上相同内容的出现次数IF(C:C="", "", ...):C列空白行直接返回空值,避免无效计算
验证示例
对应你给出的示例数据:
- C1的APPLES:COUNTIF结果为1,减1后0,D1=3/10/23
- C2的APPLES:COUNTIF结果为2,减1后1,D2=3/10/23+7=3/17/23
- C6的APPLES:COUNTIF结果为3,减1后2,D6=3/10/23+14=3/24/23
- B列空的TURNIPS:VLOOKUP返回错误,D列留空
完全符合你的需求。
内容的提问来源于stack exchange,提问作者spence1
相关产品推荐
相关产品推荐

