Gå til hovedindhold

Hvordan indsættes tal eller rækker for manglende sekventielle numre i Excel?

Antag at du har en liste over fortløbende numre i et regneark, men der er nogle manglende tal blandt sekvensen, og nu skal du indsætte de manglende tal eller tomme rækker for at sikre, at sekvensen er komplet (vist som de følgende skærmbilleder). Hvordan kunne du hurtigt løse dette problem i Excel?

doc-indsæt-manglende-nummer1 -2 doc-indsæt-manglende-nummer2

Indsæt manglende tal til sekvens med funktionen Sorter og fjern duplikater

Indsæt manglende tal til sekvens med VBA-kode

Indsæt tomme rækker for manglende sekvens med VBA-kode

Indsæt manglende tal eller tomme rækker til sekvens med Kutools til Excel


pil blå højre boble Indsæt manglende tal til sekvens med funktionen Sorter og fjern duplikater

Måske kan du finde de manglende numre en efter en og derefter indsætte dem, men det er svært for dig at identificere placeringen af ​​de manglende, hvis der er hundreder af fortløbende numre. I Excel kan jeg bruge funktionen Sorter og fjern duplikater til at håndtere denne opgave.

1. Efter slutningen af ​​sekvenslisten skal du udfylde et andet sekvensnummer fra 2005023001 til 2005023011. Se skærmbillede:

doc-indsæt-manglende-nummer3

2. Vælg derefter rækkevidden for de to sekvensnumre, og klik data > Sorter A til Z, se skærmbillede:

doc-indsæt-manglende-nummer4

3. Og de valgte data er sorteret som følgende skærmbillede:

doc-indsæt-manglende-nummer5

4. Derefter skal du fjerne duplikaterne ved at klikke data > Fjern duplikaterog i poppet ud Fjern duplikater dialogboksen, skal du kontrollere Kolonne navn, som du vil fjerne duplikaterne, se skærmbilleder:

doc-indsæt-manglende-nummer6 -2 doc-indsæt-manglende-nummer7

5. Klik derefter på OK, duplikaterne i Kolonne A er blevet slettet, og de manglende tal i sekvenslisten er indsat, se skærmbillede:

doc-indsæt-manglende-nummer8


pil blå højre boble Indsæt manglende tal til sekvens med VBA-kode

Hvis du føler, at der er så mange trin med ovenstående metoder, har du også VBA-kode, der kan hjælpe dig med at afslutte dette problem. Gør som følger:

1. Hold nede ALT + F11 tasterne, og det åbner Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i Moduler vindue.

VBA: indsæt manglende tal til sekvensen

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. Tryk derefter på F5 nøgle til at køre denne kode, og der vises et promptfelt, vælg det dataområde, som du vil indsætte de manglende numre (vælg ikke titelområdet), se skærmbillede:

doc-indsæt-manglende-nummer9

4. Og klik derefter på OK, de manglende numre er indsat i sekvenslisten. Se skærmbilleder:

doc-indsæt-manglende-nummer1 -2 doc-indsæt-manglende-nummer2

pil blå højre boble Indsæt tomme rækker for manglende sekvens med VBA-kode

Nogle gange skal du bare finde stedet for de manglende numre og indsætte tomme rækker mellem dataene, så du kan indtaste de oplysninger, som du har brug for. Selvfølgelig kan følgende VBA-kode også hjælpe dig med at løse dette problem.

1. Hold nede i ALT + F11 taster, og det åbner en Microsoft Visual Basic til applikationer vindue.

2. Klik indsatte > Moduler, og indsæt følgende kode i Moduler vindue.

VBA: indsæt tomme rækker for manglende sekvens

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. Tryk derefter på F5 nøgle til at køre denne kode, og en promptboks vises, og vælg derefter det dataområde, som du vil indsætte tomme rækker for den manglende sekvens (vælg ikke titelområdet), se skærmbillede:

doc-indsæt-manglende-nummer9

4. Og klik derefter på OK, de tomme rækker er indsat til den manglende sekvensliste. Se skærmbilleder:

doc-indsæt-manglende-nummer1 -2 doc-indsæt-manglende-nummer10

pil blå højre boble Indsæt manglende tal eller tomme rækker til sekvens med Kutools til Excel

Her vil jeg introducere et let og praktisk værktøj- Kutools til Excel, Med Find manglende sekvensnummer funktion, kan du hurtigt indsætte det manglende sekvensnummer eller tomme rækker mellem den eksisterende datasekvens.

Kutools til Excel : med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage

Hvis du har installeret Kutools til Excelskal du gøre som følger:

1. Vælg den datasekvens, du vil indsætte de manglende numre.

2. Klik Kutools > indsatte > Find manglende sekvensnummer, se skærmbillede:

3. I Find manglende sekvensnummer dialogboks, tjek Indsætter manglende sekvensnummer for at indsætte de manglende tal eller Insætte tomme rækker, når du støder på manglende sekvensnumre for at indsætte tomme rækker, som du har brug for. Se skærmbillede:

doc-indsæt-manglende-nummer10

4. Og klik derefter på OK knappen, og de manglende sekvensnumre eller tomme rækker er indsat i dataene, se skærmbilleder:

doc-indsæt-manglende-nummer10 2 doc-indsæt-manglende-nummer10 2 doc-indsæt-manglende-nummer10

Download og gratis prøveversion Kutools til Excel nu!


pil blå højre boble  Demo: Indsæt manglende tal eller tomme rækker til sekvens med Kutools til Excel

Kutools til Excel: med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage. Download og gratis prøveversion nu!

Relateret artikel:

Hvordan identificeres manglende nummersekvens i Excel?

Bedste kontorproduktivitetsværktøjer

🤖 Kutools AI Aide: Revolutionér dataanalyse baseret på: Intelligent udførelse   |  Generer kode  |  Opret brugerdefinerede formler  |  Analyser data og generer diagrammer  |  Aktiver Kutools funktioner...
Populære funktioner: Find, fremhæv eller identificer dubletter   |  Slet tomme rækker   |  Kombiner kolonner eller celler uden at miste data   |   Runde uden formel ...
Super opslag: VLookup med flere kriterier    Multiple Value VLookup  |   VOpslag på tværs af flere ark   |   Fuzzy Lookup ....
Avanceret rulleliste: Opret hurtigt rulleliste   |  Afhængig rulleliste   |  Multivælg rulleliste ....
Column Manager: Tilføj et bestemt antal kolonner  |  Flyt kolonner  |  Skift synlighedsstatus for skjulte kolonner  |  Sammenlign områder og kolonner ...
Fremhævede funktioner: Grid fokus   |  Designvisning   |   Stor Formel Bar    Arbejdsbog & Ark Manager   |  Ressourcebibliotek (Autotekst)   |  Datovælger   |  Kombiner regneark   |  Krypter/Dekrypter celler    Send e-mails efter liste   |  Superfilter   |   Specielt filter (filter fed/kursiv/gennemstreget...) ...
Top 15 værktøjssæt12 tekst Værktøjer (tilføje tekst, Fjern tegn, ...)   |   50 + Chart Typer (Gantt kort, ...)   |   40+ Praktisk formler (Beregn alder baseret på fødselsdag, ...)   |   19 Indsættelse Værktøjer (Indsæt QR-kode, Indsæt billede fra sti, ...)   |   12 Konvertering Værktøjer (Tal til ord, Valutaomregning, ...)   |   7 Flet og del Værktøjer (Avancerede kombinere rækker, Opdel celler, ...)   |   ... og mere

Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid.  Klik her for at få den funktion, du har mest brug for...

Beskrivelse


Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere

  • Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
  • Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
  • Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
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