Vai al contenuto principale

Come inserire numeri o righe per numeri sequenziali mancanti in Excel?

Supponendo di avere un elenco di numeri sequenziali in un foglio di lavoro, ma ci sono alcuni numeri mancanti tra la sequenza e ora è necessario inserire i numeri mancanti o le righe vuote per assicurarsi che la sequenza sia completa (mostrata come le seguenti schermate). Come hai potuto risolvere rapidamente questo problema in Excel?

doc-inserire-numero-mancante1 -2 doc-inserire-numero-mancante2

Inserisci i numeri mancanti per la sequenza con la funzione Ordina e rimuovi duplicati

Inserisci i numeri mancanti per la sequenza con codice VBA

Inserisci righe vuote per la sequenza mancante con codice VBA

Inserisci numeri mancanti o righe vuote per la sequenza con Kutools per Excel


freccia blu freccia destra Inserisci i numeri mancanti per la sequenza con la funzione Ordina e rimuovi duplicati

Potrebbe essere possibile trovare i numeri mancanti uno per uno e quindi inserirli, ma è difficile identificare la posizione di quelli mancanti se ci sono centinaia di numeri sequenziali. In Excel, posso utilizzare la funzione Ordina e rimuovi duplicati per gestire questa attività.

1. Dopo la fine dell'elenco delle sequenze, inserisci un altro numero di sequenza da 2005023001 a 2005023011. Vedi screenshot:

doc-inserire-numero-mancante3

2. Quindi selezionare l'intervallo dei due numeri di sequenza e fare clic Dati > Ordina dalla A alla Z, vedi screenshot:

doc-inserire-numero-mancante4

3. E i dati selezionati sono stati ordinati come nella seguente schermata:

doc-inserire-numero-mancante5

4. Quindi è necessario rimuovere i duplicati facendo clic Dati > Rimuovi duplicati, e nel saltò fuori Rimuovi duplicati finestra di dialogo, selezionare Colonna nome che vuoi rimuovere i duplicati, vedi screenshot:

doc-inserire-numero-mancante6 -2 doc-inserire-numero-mancante7

5. Quindi fare clic OK, i duplicati in Colonna A è stato cancellato e sono stati inseriti i numeri mancanti nell'elenco delle sequenze, vedi screenshot:

doc-inserire-numero-mancante8


freccia blu freccia destra Inserisci i numeri mancanti per la sequenza con codice VBA

Se ritieni che ci siano così tanti passaggi con i metodi sopra, anche qui il codice VBA può aiutarti a completare questo problema. Si prega di fare quanto segue:

1. Tieni premuto il ALT + F11 chiavi e apre il file Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Modulie incolla il codice seguente nel file Moduli finestra.

VBA: inserisci i numeri mancanti per la sequenza

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. Quindi premere F5 chiave per eseguire questo codice e verrà visualizzata una finestra di messaggio, selezionare l'intervallo di dati in cui si desidera inserire i numeri mancanti (non selezionare l'intervallo di titoli), vedere screenshot:

doc-inserire-numero-mancante9

4. E poi clicca OK, i numeri mancanti sono stati inseriti nell'elenco delle sequenze. Vedi screenshot:

doc-inserire-numero-mancante1 -2 doc-inserire-numero-mancante2

freccia blu freccia destra Inserisci righe vuote per la sequenza mancante con codice VBA

A volte, devi solo individuare la posizione dei numeri mancanti e inserire righe vuote tra i dati, in modo da poter inserire le informazioni di cui hai bisogno. Ovviamente, anche il seguente codice VBA può aiutarti a risolvere questo problema.

1. Tenere premuto il tasto ALT + F11 keys, e apre un file Microsoft Visual Basic, Applications Edition finestra.

2. Clic inserire > Modulie incolla il codice seguente nel file Moduli finestra.

VBA: inserisci righe vuote per la sequenza mancante

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. Quindi premere F5 chiave per eseguire questo codice e verrà visualizzata una finestra di messaggio, quindi selezionare l'intervallo di dati in cui si desidera inserire righe vuote per la sequenza mancante (non selezionare l'intervallo di titoli), vedere screenshot:

doc-inserire-numero-mancante9

4. E poi clicca OK, le righe vuote sono state inserite per l'elenco delle sequenze mancanti. Vedi screenshot:

doc-inserire-numero-mancante1 -2 doc-inserire-numero-mancante10

freccia blu freccia destra Inserisci numeri mancanti o righe vuote per la sequenza con Kutools per Excel

Qui presenterò uno strumento facile e pratico: Kutools for Excel, Con la sua Trova il numero di sequenza mancante funzione, è possibile inserire rapidamente il numero di sequenza mancante o righe vuote tra la sequenza di dati esistente.

Kutools for Excel : con oltre 300 utili componenti aggiuntivi di Excel, da provare gratuitamente senza limitazioni in 30 giorni

Se hai installato Kutools for Excel, si prega di fare come segue:

1. Seleziona la sequenza di dati in cui desideri inserire i numeri mancanti.

2. Clic Kutools > inserire > Trova il numero di sequenza mancante, vedi screenshot:

3. Nel Trova il numero di sequenza mancante finestra di dialogo, controllare Inserimento del numero di sequenza mancante per inserire i numeri mancanti o I.nserire righe vuote quando si incontrano numeri di sequenza mancanti per inserire righe vuote di cui hai bisogno. Vedi screenshot:

doc-inserire-numero-mancante10

4. E poi clicca OK e i numeri di sequenza mancanti o le righe vuote sono stati inseriti nei dati, vedi screenshot:

doc-inserire-numero-mancante10 2 doc-inserire-numero-mancante10 2 doc-inserire-numero-mancante10

Scarica e prova gratuitamente Kutools per Excel ora!


freccia blu freccia destra  Demo: inserisci numeri mancanti o righe vuote per la sequenza con Kutools per Excel

Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni. Scarica e prova gratuita ora!

Articolo correlato:

Come identificare la sequenza di numeri mancanti in Excel?

I migliori strumenti per la produttività in ufficio

🤖 Assistente AI di Kutools: Rivoluziona l'analisi dei dati basandosi su: Esecuzione intelligente   |  Genera codice  |  Crea formule personalizzate  |  Analizzare i dati e generare grafici  |  Richiama le funzioni di Kutools...
Funzioni popolari: Trova, evidenzia o identifica i duplicati   |  Elimina righe vuote   |  Combina colonne o celle senza perdere dati   |   Round senza formula ...
Super ricerca: VLookup a criteri multipli    VLookup a valori multipli  |   VLookup su più fogli   |   Ricerca fuzzy ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa   |  Elenco a discesa dipendente   |  Elenco a discesa a selezione multipla ....
Gestore di colonna: Aggiungi un numero specifico di colonne  |  Sposta colonne  |  Attiva/disattiva lo stato di visibilità delle colonne nascoste  |  Confronta intervalli e colonne ...
Funzionalità in primo piano: Messa a fuoco della griglia   |  Vista di progettazione   |   Grande barra delle formule    Gestore di cartelle di lavoro e fogli   |  Resource Library (Testo automatico)   |  Date picker   |  Combina fogli di lavoro   |  Crittografa/decrittografa le celle    Invia e-mail per elenco   |  Super filtro   |   Filtro speciale (filtro grassetto/corsivo/barrato...) ...
I 15 migliori set di strumenti12 Testo Strumenti (aggiungi testo, Rimuovi personaggi, ...)   |   50+ Grafico Tipi (Diagramma di Gantt, ...)   |   40+ Pratico Formule (Calcola l'età in base al compleanno, ...)   |   19 Inserimento Strumenti (Inserisci il codice QR, Inserisci immagine dal percorso, ...)   |   12 Conversione Strumenti (Numeri in parole, Conversione di valuta, ...)   |   7 Unisci e dividi Strumenti (Combina righe avanzate, Celle divise, ...)   |   ... e altro ancora

Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo.  Fai clic qui per ottenere la funzionalità di cui hai più bisogno...

Descrizione


Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
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