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 for Applications 窗口。

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 for Applications 窗口。

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進行排序

在這裡,我將介紹一個方便的工具- Excel的Kutools,其 查找丟失的序列號 功能,您可以在現有數據序列之間快速插入缺少的序列號或空白行。

Excel的Kutools : 帶有300多個便捷的Excel加載項,可以在30天內免費試用

如果你已經安裝 Excel的Kutools,請執行以下操作:

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插入缺失的數字或空白行以進行排序

Excel的Kutools:具有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保護