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

求可实现指定周范围双标记功能的Excel公式

Excel周范围标记公式实现方案

示例参考数据:
Sample data

前置假设

以下公式基于通用表格结构设置,可根据你的实际列位置调整参数:

  • 表格首行为表头,有效数据从第2行开始
  • A列为连续无断档的Week(周数)列
  • B列为Month(月份)列,同自然月的行取值完全一致
  • C列为Flag 1结果列,D列为Flag 2结果列

Flag 1 公式实现

实现逻辑:定位当前月份首次出现的行,计算新月开始后满8周的对应位置标记1。
C2单元格输入以下公式,向下填充即可:
=IF(A2=INDEX(A:A,MATCH(B2,B:B,0))+7,1,0)
逻辑说明:

  • MATCH(B2,B:B,0):定位当前行月份在整列第一次出现的行号,即新月开始的第一行
  • INDEX(A:A,行号):取出该新月第一行对应的周数
  • 新月第一周周数+7的位置刚好是满8周的节点,符合条件则返回1,否则返回0

如果使用Excel 365/2021版本,可直接在C2输入溢出公式,无需手动下拉:
=BYROW(B2:B1000,LAMBDA(m,IF(A2=INDEX(A:A,MATCH(m,B:B,0))+7,1,0)))

Flag 2 公式实现

实现逻辑:找到当前行上方最近的Flag 1标记位,之后每间隔2周标记1。
D2单元格输入以下公式,向下填充即可,兼容所有Excel版本:
=IFERROR(IF(MOD(A2 - LOOKUP(2,1/(C$1:C1=1),A$1:A1),2)=0,1,0),0)
逻辑说明:

  • LOOKUP(2,1/(C$1:C1=1),A$1:A1):查找当前行上方最近一个Flag 1为1的行对应的周数
  • 用当前周数减去上述Flag 1的周数,模2结果为0即刚好间隔N个2周,符合条件返回1
  • 外层IFERROR捕获还未出现第一个Flag 1的情况,直接返回0

如果使用支持XLOOKUP的Excel版本,可替换为更易读的写法:
=IFERROR(IF(MOD(A2 - XLOOKUP(1,C$1:C1,A$1:A1,"",0,-1),2)=0,1,0),0)

适配调整说明

如果你的周数存在断档,可将公式中所有对A列(周数)的引用替换为ROW()函数,用行号差替代周数差即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 07:39:02