Прескочи на основното съдържание

Как да вмъкнете числа или редове за липсващи последователни номера в Excel?

Автор: Xiaoyang Последна промяна: 2020-05-27

Да предположим, че имате списък с последователни числа в работен лист, но има някои липсващи числа сред последователността и сега трябва да вмъкнете липсващите числа или празни редове, за да сте сигурни, че последователността е пълна (показано като следните екранни снимки). Как можете бързо да разрешите този проблем в Excel?

документ-вмъкване-липсващ-номер1 -2 документ-вмъкване-липсващ-номер2

Вмъкнете липсващи числа за последователност с функцията за сортиране и премахване на дубликати

Вмъкнете липсващите числа за последователност с VBA код

Вмъкнете празни редове за липсваща последователност с VBA код

Вмъкнете липсващи числа или празни редове за последователност с Kutools за Excel


стрелка син десен балон Вмъкнете липсващи числа за последователност с функцията за сортиране и премахване на дубликати

Може би можете да намерите липсващите числа едно по едно и след това да ги вмъкнете, но ви е трудно да идентифицирате местоположението на липсващите, ако има стотици последователни номера. В Excel мога да използвам функцията за сортиране и премахване на дубликати, за да се справя с тази задача.

1. След края на списъка с последователности попълнете други последователни номера от 2005023001 до 2005023011. Вижте екранна снимка:

документ-вмъкване-липсващ-номер3

2. След това изберете обхвата на двата поредни номера и щракнете Дата > Сортирай от А до Я, вижте екранна снимка:

документ-вмъкване-липсващ-номер4

3. И избраните данни са сортирани като следната екранна снимка:

документ-вмъкване-липсващ-номер5

4. След това трябва да премахнете дубликатите чрез щракване Дата > Премахване на дубликати, и в изскочи Премахване на дубликати диалоговия прозорец, проверете Колона име, което искате да премахнете дубликатите, вижте екранните снимки:

документ-вмъкване-липсващ-номер6 -2 документ-вмъкване-липсващ-номер7

5, След това кликнете OK, дубликатите в Колона А е изтрито и липсващите числа в списъка с последователности са вмъкнати, вижте екранната снимка:

документ-вмъкване-липсващ-номер8


стрелка син десен балон Вмъкнете липсващите числа за последователност с 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 за да изпълните този код и ще изскочи поле за подкана, моля, изберете диапазона от данни, в който искате да вмъкнете липсващите числа (не избирайте диапазона на заглавието), вижте екранната снимка:

документ-вмъкване-липсващ-номер9

4, И после щракнете върху OK, липсващите числа са вмъкнати в списъка с последователности. Вижте екранни снимки:

документ-вмъкване-липсващ-номер1 -2 документ-вмъкване-липсващ-номер2

стрелка син десен балон Вмъкнете празни редове за липсваща последователност с VBA код

Понякога просто трябва да намерите мястото на липсващите числа и да вмъкнете празни редове между данните, за да можете да въведете необходимата информация. Разбира се, следният VBA код също може да ви помогне да решите този проблем.

1. Задръжте надолу ALT + F11 ключове и отваря a 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 за да стартирате този код и ще се покаже поле за подкана, след което изберете диапазона от данни, в който искате да вмъкнете празни редове за липсващата последователност (не избирайте диапазона от заглавия), вижте екранната снимка:

документ-вмъкване-липсващ-номер9

4, И после щракнете върху OK, празните редове са вмъкнати за списъка с липсващи последователности. Вижте екранни снимки:

документ-вмъкване-липсващ-номер1 -2 документ-вмъкване-липсващ-номер10

стрелка син десен балон Вмъкнете липсващи числа или празни редове за последователност с Kutools за Excel

Тук ще представя един лесен и удобен инструмент - Kutools за Excel, Със своята Намерете липсващ пореден номер можете бързо да вмъкнете липсващия пореден номер или празни редове между съществуващата поредица от данни.

Kutools за Excel : с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни

Ако сте инсталирали Kutools за Excel, моля, направете следното:

1. Изберете последователността от данни, в която искате да вмъкнете липсващите числа.

2. Щракнете Kutools > Поставете > Намерете липсващ пореден номер, вижте екранна снимка:

3. В Намерете липсващ пореден номер диалогов прозорец, проверете Вмъкване на липсващ пореден номер за да вмъкнете липсващите числа или Iвмъкване на празни редове при срещане на липсващи поредни номера за да вмъкнете празни редове, както ви е необходимо. Вижте екранна снимка:

документ-вмъкване-липсващ-номер10

4, И после щракнете върху OK и липсващите поредни номера или празни редове са вмъкнати в данните, вижте екранните снимки:

документ-вмъкване-липсващ-номер10 2 документ-вмъкване-липсващ-номер10 2 документ-вмъкване-липсващ-номер10

Изтеглете и изпробвайте безплатно Kutools за Excel сега!


стрелка син десен балон  Демонстрация: Вмъкнете липсващи числа или празни редове за последователност с Kutools за Excel

Kutools за Excel: с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. Изтеглете и изпробвайте безплатно сега!

Свързана статия:

Как да идентифицирам последователност от липсващи числа в Excel?

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (12)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have used the code for "VBA: insert blank rows for missing sequence" as listed above and works great - but i need it to insert rows across the all columns it only adds rows to the first 2 columns of my selection - not my entire table.
This comment was minimized by the moderator on the site
Hello, Melanie,

To solve your problem, maybe the following code can help you: (Note: A indicates the column contains the missing sequence, please change it to your need.)
Sub InsertBlankRowsForMissingSequence()
    Dim i As Long
    On Error Resume Next
    Application.ScreenUpdating = False
    For i = Cells(Rows.Count, "A").End(xlUp).Row To 2 Step -1
        If IsNumeric(Cells(i, "A").Value) And IsNumeric(Cells(i - 1, "A").Value) And Cells(i, "A").Value <> "" And Cells(i - 1, "A").Value <> "" Then
            If Cells(i, "A").Value - Cells(i - 1, "A").Value > 1 Then
                Debug.Print Cells(i, "A").Value - Cells(i - 1, "A").Value - 1
                Rows(i).Resize(Cells(i, "A").Value - Cells(i - 1, "A").Value - 1).Insert
            End If
        End If
    Next i
    Application.ScreenUpdating = True
End Sub

Please have a try, hope it can help you!
This comment was minimized by the moderator on the site
I am trying to use the VBA for sequential numbers. I have several columns next to the numbers of which numbers too. I.e.
1. HL Meter 34
2. HL Watermeter 40
4. HL CO2meter 24

When I use the code it works for the first 3 columns but it gets mixed up if I include the 4th column since it includes numbers too.
How can I change the code to make sure the numbers in column 4 stay the same?
This comment was minimized by the moderator on the site
Thank you amazing
This comment was minimized by the moderator on the site
What if i want to select 6 columns and then check 1st column for dates and if dates are missing add a row(blank cells) for all 6 columns
This comment was minimized by the moderator on the site
I want to use "Inserting missing sequence Number" feature but it's not supporting for digits more than 12 ? there are many sets in which I want to insert the sequence between (it's a alpha-numeric digit) can you help
This comment was minimized by the moderator on the site
Hi, I want to use "Inserting Missing Sequence Number", but it's not supporting if the no. of digits are more than 12 can you help ?
This comment was minimized by the moderator on the site
What if i want to select 6 columns and then check 1st column for dates and if dates are missing add a row(blank cells) for all 6 columns
This comment was minimized by the moderator on the site
Thank you very much. How do i change the script if the increments is only 0.02 and not 1 This is for the script InsertNullBetween()
This comment was minimized by the moderator on the site
this worked and was very easy to complete the task. Thank you.
This comment was minimized by the moderator on the site
Thanks ! Great script ! How i can modify this script if i say we need to process not only ID column + NAME column, but ID column + NAME column + NEW column ? How i can add new columns in this script?
This comment was minimized by the moderator on the site
The following is the modified macro to include an added column - Another important point is that when prompted to select the range, you should only select the first column - these took me a few hours! hope to save others' time

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")
Dim dic2 As Variant
Set dic2 = 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 3)
For Each Rng In WorkRng
dic(Rng.Value) = Rng.Offset(0, 1).Value
dic2(Rng.Value) = Rng.Offset(0, 2).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)
outArr(i + 1, 3) = dic2(i + num1)
Else
outArr(i + 1, 2) = ""
outArr(i + 1, 3) = ""

End If
Next
With WorkRng.Range("A1").Resize(UBound(outArr, 1), UBound(outArr, 2))
.Value = outArr
.Select
End With
End Sub
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations