Hoppa till huvudinnehåll

Hur infogar jag siffror eller rader för saknade löpnummer i Excel?

Om du antar att du har en lista med löpnummer i ett kalkylblad, men det finns några saknade nummer bland sekvensen, och nu måste du infoga de saknade siffrorna eller tomma rader för att se till att sekvensen är komplett (visas som följande skärmdumpar). Hur kunde du snabbt lösa detta problem i Excel?

doc-infoga-missing-number1 -2 doc-infoga-missing-number2

Infoga saknade nummer för sekvens med funktionen Sortera och ta bort dubbletter

Infoga saknade nummer för sekvens med VBA-kod

Infoga tomma rader för saknad sekvens med VBA-kod

Infoga saknade nummer eller tomma rader för sekvens med Kutools för Excel


pil blå höger bubbla Infoga saknade nummer för sekvens med funktionen Sortera och ta bort dubbletter

Det kan hända att du kan hitta de saknade siffrorna en efter en och sedan infoga dem, men det är svårt för dig att identifiera platsen för de saknade numren om det finns hundratals löpnummer. I Excel kan jag använda funktionen Sortera och ta bort dubbletter för att hantera den här uppgiften.

1. Efter slutet av sekvenslistan fyller du i ett annat sekvensnummer från 2005023001 till 2005023011. Se skärmdump:

doc-infoga-missing-number3

2. Välj sedan intervallet för de två sekvensnumren och klicka Data > Sortera A till Z, se skärmdump:

doc-infoga-missing-number4

3. Och de valda data har sorterats som följande skärmdump:

doc-infoga-missing-number5

4. Då måste du ta bort dubbletterna genom att klicka Data > Ta bort dubbletteroch i poppade ut Ta bort dubbletter dialogrutan, kolla på Kolumn namn som du vill ta bort dubbletterna, se skärmdumpar:

doc-infoga-missing-number6 -2 doc-infoga-missing-number7

5. Klicka sedan OK, dubbletterna i Kolumn A har raderats och de saknade siffrorna i sekvenslistan har infogats, se skärmdump:

doc-infoga-missing-number8


pil blå höger bubbla Infoga saknade nummer för sekvens med VBA-kod

Om du känner att det finns så många steg med ovanstående metoder, har du också VBA-kod som kan hjälpa dig att slutföra detta problem. Gör så här:

1. Håll ner ALT + F11 knapparna och det öppnar Microsoft Visual Basic för applikationer fönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna fönster.

VBA: infoga saknade nummer för 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. Tryck sedan på F5 nyckel för att köra den här koden, och en snabbruta dyker upp, välj det dataintervall som du vill infoga de saknade siffrorna (välj inte titelintervallet), se skärmdump:

doc-infoga-missing-number9

4. Och klicka sedan på OKhar de saknade siffrorna lagts in i sekvenslistan. Se skärmdumpar:

doc-infoga-missing-number1 -2 doc-infoga-missing-number2

pil blå höger bubbla Infoga tomma rader för saknad sekvens med VBA-kod

Ibland behöver du bara hitta platsen för de saknade siffrorna och infoga tomma rader mellan data så att du kan ange informationen efter behov. Naturligtvis kan följande VBA-kod också hjälpa dig att lösa detta problem.

1. Håll ner ALT + F11 knapparna, och det öppnas en Microsoft Visual Basic för applikationer fönster.

2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna fönster.

VBA: infoga tomma rader för saknad 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. Tryck sedan på F5 nyckel för att köra den här koden, så visas en snabbruta och välj sedan det dataintervall som du vill infoga tomma rader för den saknade sekvensen (välj inte titelområdet), se skärmdump:

doc-infoga-missing-number9

4. Och klicka sedan på OK, de tomma raderna har införts för den saknade sekvenslistan. Se skärmdumpar:

doc-infoga-missing-number1 -2 doc-infoga-missing-number10

pil blå höger bubbla Infoga saknade nummer eller tomma rader för sekvens med Kutools för Excel

Här presenterar jag ett enkelt och praktiskt verktyg- Kutools för Excel, med dess Hitta saknat sekvensnummer kan du snabbt infoga det saknade sekvensnumret eller tomma rader mellan den befintliga datasekvensen.

Kutools för Excel : med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsning på 30 dagar

Om du har installerat Kutools för Excel, gör så här:

1. Välj datasekvensen som du vill infoga de saknade siffrorna.

2. Klicka Kutools > Insert > Hitta saknat sekvensnummer, se skärmdump:

3. I Hitta saknat sekvensnummer dialogruta, kontrollera Infogar saknat sekvensnummer för att infoga de saknade siffrorna eller jagnSätta in tomma rader när du stöter på saknade sekvensnummer för att infoga tomma rader efter behov. Se skärmdump:

doc-infoga-missing-number10

4. Och klicka sedan på OK knappen och de saknade sekvensnumren eller tomma rader har infogats i data, se skärmdumpar:

doc-infoga-missing-number10 2 doc-infoga-missing-number10 2 doc-infoga-missing-number10

Ladda ner och testa gratis Kutools för Excel nu!


pil blå höger bubbla  Demo: Infoga saknade nummer eller tomma rader för sekvens med Kutools för Excel

Kutools för Excel: med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsning på 30 dagar. Ladda ner och testa gratis nu!

Relaterad artikel:

Hur identifierar jag sekvensen för saknade nummer i Excel?

Bästa kontorsproduktivitetsverktyg

🤖 Kutools AI Aide: Revolutionera dataanalys baserat på: Intelligent utförande   |  Generera kod  |  Skapa anpassade formler  |  Analysera data och generera diagram  |  Anropa Kutools funktioner.
Populära funktioner: Hitta, markera eller identifiera dubbletter   |  Ta bort tomma rader   |  Kombinera kolumner eller celler utan att förlora data   |   Rund utan formel ...
Superuppslag: Flera kriterier VLookup    VLookup med flera värden  |   VSök över flera ark   |   Fuzzy Lookup ....
Avancerad rullgardinslista: Skapa snabbt en rullgardinslista   |  Beroende rullgardinslista   |  Flervals-rullgardinslista ....
Kolumnhanterare: Lägg till ett specifikt antal kolumner  |  Flytta kolumner  |  Växla synlighetsstatus för dolda kolumner  |  Jämför intervall och kolumner ...
Utvalda funktioner: Rutnätsfokus   |  Designvy   |   Stor formelbar    Arbetsbok & Bladhanterare   |  Resursbibliotek (Automatisk text)   |  Datumväljare   |  Kombinera arbetsblad   |  Kryptera/Dekryptera celler    Skicka e-postmeddelanden efter lista   |  Superfilter   |   Specialfilter (filtrera fet/kursiv/genomstruken...) ...
Topp 15 verktygssatser12 text verktyg (lägga till text, Ta bort tecken, ...)   |   50+ Diagram Typer (Gantt Chart, ...)   |   40+ Praktiskt Formler (Beräkna ålder baserat på födelsedag, ...)   |   19 Införande verktyg (Infoga QR-kod, Infoga bild från sökväg, ...)   |   12 Konvertering verktyg (Siffror till ord, Valutaväxling, ...)   |   7 Slå ihop och dela verktyg (Avancerade kombinera rader, Dela celler, ...)   |   ... och mer

Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid.  Klicka här för att få den funktion du behöver mest...

Beskrivning


Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje 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