Excel重复员工编号按规则添加后缀的公式求助
解决方法
方法一:Excel公式(新手友好)
找个空白列(比如C列)作为辅助列,在C2单元格输入以下公式后,下拉填充到第10000行:
=LET( curr, B2, nxt, B3, nxt2, B4, IF(ISBLANK(curr), "", IF(nxt<>curr, curr, IF(nxt2=curr, curr&"-3", curr&"-2") ) ) )
逻辑说明:
- 自动跳过空单元格
- 若下一行编号与当前行不同,直接保留原编号
- 若下一行编号与当前行相同,再检查下下一行:
- 下下一行编号也相同 → 原编号后追加"-3"
- 下下一行编号不同 → 原编号后追加"-2"
确认C列结果无误后,选中C列按Ctrl+C复制,再选中B列右键选择「粘贴值」,即可替换原数据。
方法二:VBA宏(批量高效)
如果不想手动下拉填充,用宏可一次性完成批量处理:
- 按下
Alt+F11打开VBA编辑器 - 右键点击左侧的工作簿名称,选择「插入」→「模块」
- 粘贴以下代码:
Sub RenameEmployeeIDs() Dim lastRow As Long, i As Long lastRow = Cells(Rows.Count, "B").End(xlUp).Row For i = 2 To lastRow If Cells(i, "B") = Cells(i + 1, "B") Then If i < lastRow And Cells(i + 1, "B") = Cells(i + 2, "B") Then Cells(i, "B") = Cells(i, "B") & "-3" Else Cells(i, "B") = Cells(i, "B") & "-2" End If End If Next i End Sub
- 按下
F5运行宏即可。注意:运行前务必备份原数据,避免误操作
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

