You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

请求生成Excel公式:按日期顺序为指定类别分配编号

生成分类月度递增编号的Excel公式

核心公式(假设日期列是B列,数据从第2行开始)

在C2单元格输入以下公式,下拉填充即可:

=IF(A2="Regular","W","O")&COUNTIFS(A:A,A2,B:B,">="&DATE(YEAR(B2),MONTH(B2),1),B:B,"<="&B2)

公式说明

  • 前缀自动匹配IF(A2="Regular","W","O") 根据A列的类别直接生成对应前缀
  • 月度序号计算COUNTIFS(A:A,A2,B:B,">="&DATE(YEAR(B2),MONTH(B2),1),B:B,"<="&B2) 统计当前行及之前,同类别且日期在当月范围内的记录数,自然实现按日期顺序的递增编号
  • 适配动态透视表:公式直接引用整列范围,即使透视表更新导致日期动态变化,也能自动计算新增数据的编号

日期未排序的兼容方案

如果日期列不是按升序排列,需要严格按日期先后分配编号,可改用以下公式:

=IF(A2="Regular","W","O")&RANK.EQ(B2,IF((A:A=A2)*(MONTH(B:B)=MONTH(B2))*(YEAR(B:B)=YEAR(B2)),B:B,""),1)

该公式先筛选出当月同类别所有日期,再对当前日期做升序排名,确保序号完全匹配日期先后顺序。

简化版(Excel 365/2021及以上)

使用LET函数整合变量,提升公式可读性:

=LET(
    category,A2,
    currentDate,B2,
    monthStart,DATE(YEAR(currentDate),MONTH(currentDate),1),
    prefix,IF(category="Regular","W","O"),
    seq,COUNTIFS(A:A,category,B:B,">="&monthStart,B:B,"<="&currentDate),
    prefix&seq
)

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

火山引擎 最新活动