ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1647|回复: 10

[求助] 如何实现Excel多级自动编号

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-10 21:37 | 显示全部楼层 |阅读模式
本帖最后由 feiyang451 于 2023-4-10 21:44 编辑

向各位老师求助。
最近在编辑一份Excel文档的时候,发现要用到类似WORD分层级自动编号功能。查询了很多教程,也没有获取到有效信息。
已知该数据有5级,即1、1.1、1.1.1、1.1.1.1、1.1.1.1.1五个层级,具体问题如下:
问题1,具体参考附图。我在附图中第9行上插入一行内容,那么这行内容的编号应该是2,而第10--16行之间的七行数据应该会自动调整为3开头的编号
具体从
2
2.1
2.1.1
2.1.1.1
2.1.1.2
2.2
2.3
3
3.1
自动调整为
3
3.1
3.1.1
3.1.1.1
3.1.1.2
3.2
3.3
4
4.1




问题2,示例见附图2
在问题1的基础上,我插入一行新的数据,这个编号属于是4级序号,在第15行位置插入新数据,3.1.1.1、在第16行位置插入新数据,编号3.1.1.2,
希望其后面原来的数据对应编号依次自动调整为3.1.1.3、3.1.1.4。
请各位老师赐教。

问题1附图

问题1附图

问题2附图

问题2附图

问题1 Excel多级自动编号样本.zip

7.72 KB, 下载次数: 15

问题1 Excel多级自动编号样本

问题2 Excel多级自动编号样本.zip

7.77 KB, 下载次数: 13

问题2 Excel多级自动编号样本

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-11 07:11 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
希望各位老师帮忙解决 问题是1的答案。
问题2是问题1的扩展,可以暂不用解决。

TA的精华主题

TA的得分主题

发表于 2023-4-11 11:01 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-4-11 11:25 | 显示全部楼层
"級別"手動輸入, 再以代碼填入"編号"???
之後從中間插入空行或往下新增, 輸入級別後, 再重刷編號???
編碼都只個位數???




TA的精华主题

TA的得分主题

发表于 2023-4-11 14:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-4-11 15:02 | 显示全部楼层
具体请看附件

问题2 Excel多级自动编号样本.rar

15.96 KB, 下载次数: 28

TA的精华主题

TA的得分主题

发表于 2023-4-11 17:39 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-11 22:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
准提部林 发表于 2023-4-11 11:25
"級別"手動輸入, 再以代碼填入"編号"???
之後從中間插入空行或往下新增, 輸入級別後, 再重刷編號???
編碼 ...

感谢您的参与,“级别”所在列正式文档是没有的,特意在此处增加辅助列“级别”,有两个目的,一是让自动编号知道这个序号是哪个层级的,(到底是1.1还是1.1.1等等)。其次希望在插入新的一行数据后,手动添加级别 数值,让自动编号根据该级别来自动给插入行以及以后的行自动添加序号或者重新修正序号。

TA的精华主题

TA的得分主题

发表于 2023-4-12 10:17 | 显示全部楼层
feiyang451 发表于 2023-4-11 22:15
感谢您的参与,“级别”所在列正式文档是没有的,特意在此处增加辅助列“级别”,有两个目的,一是让自动 ...

所以新添加的, 還是要先給定"級別", 才會知道要如何接續"序號",
原表沒有"級別"這列, 那程序又要在原表操作???

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-12 23:33 | 显示全部楼层
准提部林 发表于 2023-4-12 10:17
所以新添加的, 還是要先給定"級別", 才會知道要如何接續"序號",
原表沒有"級別"這列, 那程序又要在原表 ...

我先回答您的问题,正式文档里面是没有辅助列“级别”的,这个类似于WORD  几级标题,由于级别的值为自然数,便于软件调用,自动编号功能实现,完成编号后辅助列是可以删除的。
其实我最初想达到的功能一:是  由“级别”实现自动编号,还能实现功能二:由编号自动实现或者一键实现自动填写“级别”。


附图1就是功能一的想法或者说要求。

有人用if函数实现了自动编号,但是这个公式有个bug,遇到层级错误,例如连续层级先后分别是4和6,那么6这个层级肯定是错误的,但是软件照样还能给出编号,显然这个编号是错误的




=IF(A2="","",IF(A2>OFFSET(A2,-1,0,1,1),IF(OFFSET(B2,-1,0,1,1)="","1",OFFSET(B2,-1,0,1,1))&REPT(".1",A2-MAX(OFFSET(A2,-1,0,1,1),1)),IF(ISERROR(FIND(".",OFFSET(B2,-1,0,1,1))),REPT("1.",A2-1)&IFERROR(VALUE(OFFSET(B2,-1,0,1,1))+1,"1"),IF(A2=1,"",IFERROR(LEFT(OFFSET(B2,-1,0,1,1),FIND("^",SUBSTITUTE(OFFSET(B2,-1,0,1,1),".","^",A2-1))),""))&VALUE(TRIM(MID(SUBSTITUTE(OFFSET(B2,-1,0,1,1),".",REPT("",LEN(OFFSET(B2,-1,0,1,1)))),(A2-1)*LEN(OFFSET(B2,-1,0,1,1))+1,LEN(OFFSET(B2,-1,0,1,1)))))+1)))



自动编号

自动编号
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 15:37 , Processed in 0.039814 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表