Note: The other languages of the website are Google-translated. Back to English

如何在Excel中为缺少的序号插入数字或行?

假设您在工作表中有一个序列号列表,但是序列中有一些缺失的数字,现在您需要插入缺失的数字或空白行以确保序列完整(如以下屏幕截图所示)。 您如何在Excel中快速解决此问题?

doc-insert-missing-number1 -2 doc-insert-missing-number2

使用“排序和删除重复项”功能为序列插入丢失的数字

使用VBA代码插入缺少的序列号

使用VBA代码为缺少的序列插入空白行

插入丢失的数字或空白行以使用Kutools for Excel进行排序


箭头蓝色右气泡 使用“排序和删除重复项”功能为序列插入丢失的数字

可能是您可以找到丢失的数字一个接一个,然后将其插入,但是如果有数百个连续数字,则很难确定丢失的数字的位置。 在Excel中,我可以使用“排序和删除重复项”功能来处理此任务。

1。 在序列列表的末尾,填写从2005023001到2005023011的另一个序列号。请参见屏幕截图:

doc-insert-missing-number3

2。 然后选择两个序列号的范围,然后单击 数据 > 将A到Z排序,请参见屏幕截图:

doc-insert-missing-number4

3。 所选数据已按照以下屏幕截图进行了排序:

doc-insert-missing-number5

4。 然后,您需要通过单击删除重复项 数据 > 删除重复,然后弹出 删除重复 对话框,检查 您要删除重复项的名称,请参见屏幕截图:

doc-insert-missing-number6 -2 doc-insert-missing-number7

5。 然后点击 OK,其中的重复项 A栏 已被删除,并且序列表中缺少的数字已插入,请参见屏幕截图:

doc-insert-missing-number8


箭头蓝色右气泡 使用VBA代码插入缺少的序列号

如果您觉得上述方法有太多步骤,这里也有VBA代码可以帮助您解决此问题。 请执行以下操作:

1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA:为序列插入缺失的数字

Sub InsertValueBetween()
'Updateby Extendoffice
Dim WorkRng As Range
Dim Rng As Range
Dim outArr As Variant
Dim dic As Variant
Set dic = CreateObject("Scripting.Dictionary")
'On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
num1 = WorkRng.Range("A1").Value
num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
interval = num2 - num1
ReDim outArr(1 To interval + 1, 1 To 2)
For Each Rng In WorkRng
    dic(Rng.Value) = Rng.Offset(0, 1).Value
Next
For i = 0 To interval
    outArr(i + 1, 1) = i + num1
    If dic.Exists(i + num1) Then
        outArr(i + 1, 2) = dic(i + num1)
    Else
        outArr(i + 1, 2) = ""
    End If
Next
With WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
    .Value = outArr
    .Select
End With
End Sub

3。 然后按 F5 键运行此代码,然后会弹出一个提示框,请选择要插入缺失数字的数据范围(不要选择标题范围),请参见屏幕截图:

doc-insert-missing-number9

4。 然后点击 OK,缺少的数字已插入到序列表中。 查看屏幕截图:

doc-insert-missing-number1 -2 doc-insert-missing-number2

箭头蓝色右气泡 使用VBA代码为缺少的序列插入空白行

有时,您只需要找到丢失数字的位置,并在数据之间插入空白行,以便可以根据需要输入信息。 当然,以下VBA代码也可以帮助您解决此问题。

1. 按住 ALT + F11 键,它会打开一个 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到 模块 窗口。

VBA:为缺少的序列插入空白行

Sub InsertNullBetween()
'Updateby Extendoffice
Dim WorkRng As Range
Dim Rng As Range
Dim outArr As Variant
Dim dic As Variant
Set dic = CreateObject("Scripting.Dictionary")
'On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
num1 = WorkRng.Range("A1").Value
num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
interval = num2 - num1
ReDim outArr(1 To interval + 1, 1 To 2)
For Each Rng In WorkRng
    dic(Rng.Value) = Rng.Offset(0, 1).Value
Next
For i = 0 To interval
    If dic.Exists(i + num1) Then
        outArr(i + 1, 1) = i + num1
        outArr(i + 1, 2) = dic(i + num1)
    Else
        outArr(i + 1, 1) = ""
        outArr(i + 1, 2) = ""
    End If
Next
With WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
    .Value = outArr
    .Select
End With
End Sub

3。 然后按 F5 键来运行此代码,然后将显示一个提示框,然后选择要为缺少的序列插入空白行的数据范围(不要选择标题范围),请参见屏幕截图:

doc-insert-missing-number9

4。 然后点击 OK,已为缺少的序列列表插入空白行。 查看屏幕截图:

doc-insert-missing-number1 -2 doc-insert-missing-number10

箭头蓝色右气泡 插入丢失的数字或空白行以使用Kutools for Excel进行排序

在这里,我将介绍一个简单易用的工具- Kutools for Excel,其 查找丢失的序列号 功能,您可以在现有数据序列之间快速插入缺少的序列号或空白行。

Kutools for Excel : 带有300多个便捷的Excel加载项,可以在30天内免费试用

如果你已经安装 Kutools for Excel,请执行以下操作:

1。 选择要插入缺少的数字的数据序列。

2。 点击 库工具 > 插页 > 查找丢失的序列号,请参见屏幕截图:

3。 在 查找丢失的序列号 对话框,检查 插入缺失的序列号 插入丢失的数字或我遇到缺失的序列号时插入空白行 根据需要插入空白行。 看截图:

doc-insert-missing-number10

4。 然后点击 OK 按钮,并且缺失的序列号或空白行已插入到数据中,请参见屏幕截图:

doc-insert-missing-number10 2 doc-insert-missing-number10 2 doc-insert-missing-number10

立即下载和免费试用Excel的Kutools!


箭头蓝色右气泡  演示:插入缺失的数字或空白行以使用Kutools for Excel进行排序

Kutools for Excel:具有300多个方便的Excel加载项,可以在30天内免费试用,没有任何限制。 立即下载并免费试用!

相关文章:

如何在Excel中识别缺失的数字序列?


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (10)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
谢谢 ! 很棒的剧本! 如果我说我们不仅需要处理 ID 列 + NAME 列,还需要处理 ID 列 + NAME 列 + NEW 列,我该如何修改这个脚本? 我如何在此脚本中添加新列?
该评论由网站上的主持人最小化
以下是修改后的宏以包含一个添加的列 - 另一个重要的一点是,当提示选择范围时,您应该只选择第一列 - 这花了我几个小时! 希望节省别人的时间

子 InsertValueBetween()
'更新通过 Extendoffice
将 WorkRng 调暗为范围
昏暗范围
Dim outArr 作为变体
Dim dic 作为变体
设置 dic = CreateObject("Scripting.Dictionary")
将 dic2 调暗为变体
设置 dic2 = CreateObject("Scripting.Dictionary")

'错误继续下一步
xTitleId = "KutoolsforExcel"
设置 WorkRng = Application.Selection
设置 WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
num1 = WorkRng.Range("A1").Value
num2 = WorkRng.Range("A" & WorkRng.Rows.Count).Value
间隔 = num2 - num1
ReDim outArr(1 To interval + 1, 1 To 3)
对于 WorkRng 中的每个 Rng
dic(Rng.Value) = Rng.Offset(0, 1).Value
dic2(Rng.Value) = Rng.Offset(0, 2).Value
下一页
For i = 0 To 区间
outArr(i + 1, 1) = i + num1
如果 dic.Exists(i + num1) 那么
输出数组 (i + 1, 2) = dic(i + num1)
outArr(i + 1, 3) = dic2(i + num1)
其他
outArr(i + 1, 2) = ""
outArr(i + 1, 3) = ""

结束如果
下一页
使用 WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
.Value = outArr
。选择
结束
END SUB
该评论由网站上的主持人最小化
这很有效,很容易完成任务。 谢谢你。
该评论由网站上的主持人最小化
非常感谢你。 如果增量仅为 0.02 而不是 1,我如何更改脚本 这是用于脚本 InsertNullBetween()
该评论由网站上的主持人最小化
如果我想选择 6 列然后检查第一列的日期,如果缺少日期,为所有 1 列添加一行(空白单元格)怎么办
该评论由网站上的主持人最小化
嗨,我想使用“插入缺失的序列号”,但如果没有,则不支持。 位数超过 12 你能帮忙吗?
该评论由网站上的主持人最小化
我想使用“插入缺失的序列号”功能,但它不支持超过 12 位的数字? 有很多集合我想在其中插入序列(它是一个字母数字数字)你能帮忙吗
该评论由网站上的主持人最小化
如果我想选择 6 列然后检查第一列的日期,如果缺少日期,为所有 1 列添加一行(空白单元格)怎么办
该评论由网站上的主持人最小化
谢谢你了不起
该评论由网站上的主持人最小化
我正在尝试将 VBA 用于序列号。 我在哪个数字旁边也有几列。 IE
1. HL Meter 34
2. HL水表40
4. HL CO2meter 24

当我使用代码时,它适用于前 3 列,但如果我包含第 4 列,它会混淆,因为它也包含数字。
如何更改代码以确保第 4 列中的数字保持不变?
这里还没有评论
请用英文发表您的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护