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

基于单元格值的Excel连续编号:按B列生成C列System序列

解决Excel中基于B列值生成带整十基数的连续System编号问题

我来帮你搞定这个编号需求!你的核心目标是让C列的System编号在B列每次出现2时,从10、20、30...这样的整十数开始递增,B列是3时延续上一行的编号继续加1,而B列是1时返回End Item对吧?

原公式的问题

你之前用的=IF(B1=B2, "System" & C1+1, "System" & 1)只能处理相邻行的编号延续,没法追踪每次新分组(B=2)的整十基数,所以没法实现从10、20开始的需求。

解决方案公式

根据你的示例数据,我们可以通过统计B列中当前行及之前出现2的次数来确定整十基数,结合条件判断实现需求:

基础版本(适用于数字不超过两位的情况)

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

=IF(B2=1,"End Item",IF(B2=2,"System"&10*COUNTIF($B$2:B2,2),"System"&VALUE(RIGHT(C1,2))+1))

健壮版本(支持任意位数的数字,比如到System100及以上)

如果后续编号可能超过两位,推荐用这个公式,它可以提取System后面的所有数字:

=IF(B2=1,"End Item",IF(B2=2,"System"&10*COUNTIF($B$2:B2,2),"System"&VALUE(MID(C1,7,99))+1))

公式各部分解释

  • IF(B2=1,"End Item"):直接处理B列值为1的情况,返回指定文本End Item
  • IF(B2=2,"System"&10*COUNTIF($B$2:B2,2)):
    • COUNTIF($B$2:B2,2):统计从第2行到当前行中,B列值为2的次数(用绝对引用$B$2固定起始行,确保下拉时统计范围正确)
    • 乘以10后得到整十基数(第一次出现B=2时是10,第二次是20,以此类推),再拼接System
  • 最后一个分支(B列值为3时):
    • 基础版本用RIGHT(C1,2)提取上一行C列的最后两位数字,转成数值后加1
    • 健壮版本用MID(C1,7,99)从第7位开始提取所有数字(因为System是6个字符),避免数字位数增加时出错

验证示例数据

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

ABC
11End Item
22System10
33System11
43System12
52System20
63System21
73System22
82System30
93System31

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:16:20