Перейти к основному содержанию

Как вставить числа или строки для пропущенных порядковых номеров в Excel?

Автор: Сяоян Последнее изменение: 2020 июля 05 г.

Предположим, у вас есть список последовательных номеров на листе, но среди последовательности есть некоторые недостающие числа, и теперь вам нужно вставить недостающие числа или пустые строки, чтобы убедиться, что последовательность завершена (как показано на следующих снимках экрана). Как быстро решить эту проблему в Excel?

документ-вставка-отсутствующий-номер1 -2 документ-вставка-отсутствующий-номер2

Вставка отсутствующих номеров для последовательности с функцией сортировки и удаления дубликатов

Вставьте недостающие числа для последовательности с кодом VBA

Вставьте пустые строки для отсутствующей последовательности с кодом VBA

Вставьте отсутствующие числа или пустые строки для последовательности с помощью Kutools for Excel


стрелка синий правый пузырь Вставка отсутствующих номеров для последовательности с функцией сортировки и удаления дубликатов

Возможно, вы сможете найти недостающие числа один за другим, а затем вставить их, но вам сложно определить местонахождение недостающих, если есть сотни последовательных чисел. В Excel я могу использовать функцию сортировки и удаления дубликатов для решения этой задачи.

1. После конца списка последовательностей введите другие порядковые номера от 2005023001 до 2005023011. См. Снимок экрана:

документ-вставка-отсутствующий-номер3

2. Затем выберите диапазон из двух порядковых номеров и нажмите Данные > Сортировка от А до Я, см. снимок экрана:

документ-вставка-отсутствующий-номер4

3. И выбранные данные были отсортированы как следующий снимок экрана:

документ-вставка-отсутствующий-номер5

4. Затем нужно удалить дубликаты нажатием Данные > Удалить дубликаты, а в выскочившем Удалить дубликаты диалоговое окно, проверьте Column имя, дубликаты которого вы хотите удалить, смотрите на скриншотах:

документ-вставка-отсутствующий-номер6 -2 документ-вставка-отсутствующий-номер7

5. Затем нажмите OK, дубликаты в Колонка A был удален, и отсутствующие числа в списке последовательности были вставлены, см. снимок экрана:

документ-вставка-отсутствующий-номер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 ключи, и он открывает 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 for Excel

Здесь я представлю простой и удобный инструмент - Kutools for Excel, С его Найти отсутствующий порядковый номер функция, вы можете быстро вставить отсутствующий порядковый номер или пустые строки между существующей последовательностью данных.

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

Если вы установили Kutools for Excel, пожалуйста, сделайте следующее:

1. Выберите последовательность данных, в которую вы хотите вставить недостающие числа.

2. Нажмите Кутулс > Вставить > Найти отсутствующий порядковый номер, см. снимок экрана:

3. В Найти отсутствующий порядковый номер диалоговое окно, отметьте Вставка отсутствующего порядкового номера вставить недостающие числа или яn вставка пустых строк при обнаружении отсутствующих порядковых номеров чтобы вставить пустые строки по мере необходимости. Смотрите скриншот:

документ-вставка-отсутствующий-номер10

4, Затем нажмите OK кнопку, и в данные были вставлены отсутствующие порядковые номера или пустые строки, см. снимки экрана:

документ-вставка-отсутствующий-номер10 2 документ-вставка-отсутствующий-номер10 2 документ-вставка-отсутствующий-номер10

Загрузите бесплатную пробную версию Kutools for Excel прямо сейчас!


стрелка синий правый пузырь  Демо: вставьте отсутствующие числа или пустые строки для последовательности с помощью Kutools for Excel

Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 30 дней. Загрузите и бесплатную пробную версию прямо сейчас!

Связанная статья:

Как определить последовательность недостающих чисел в Excel?

Лучшие инструменты для офисной работы

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

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 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