Passer au contenu principal

Comment insérer des nombres ou des lignes pour les numéros séquentiels manquants dans Excel?

Supposons que vous ayez une liste de nombres séquentiels dans une feuille de calcul, mais qu'il y ait des nombres manquants dans la séquence, et que vous devez maintenant insérer les nombres manquants ou les lignes vides pour vous assurer que la séquence est complète (illustrée par les captures d'écran suivantes). Comment pourriez-vous résoudre rapidement ce problème dans Excel?

doc-insert-numéro-manquant1 -2 doc-insert-numéro-manquant2

Insérer les numéros manquants pour la séquence avec la fonction Trier et supprimer les doublons

Insérer les numéros manquants pour la séquence avec le code VBA

Insérer des lignes vides pour la séquence manquante avec le code VBA

Insérez des nombres manquants ou des lignes vides pour la séquence avec Kutools for Excel


flèche bleue bulle droite Insérer les numéros manquants pour la séquence avec la fonction Trier et supprimer les doublons

Vous pouvez peut-être trouver les numéros manquants un par un, puis les insérer, mais il vous est difficile d'identifier l'emplacement des numéros manquants s'il y a des centaines de numéros séquentiels. Dans Excel, je peux utiliser la fonctionnalité Trier et supprimer les doublons pour gérer cette tâche.

1. À la fin de la liste de séquences, entrez un autre numéro de séquence de 2005023001 à 2005023011. Voir capture d'écran:

doc-insert-numéro-manquant3

2. Sélectionnez ensuite la plage des deux numéros de séquence et cliquez sur Données > Trier de A à Z, voir capture d'écran:

doc-insert-numéro-manquant4

3. Et les données sélectionnées ont été triées comme suit:

doc-insert-numéro-manquant5

4. Ensuite, vous devez supprimer les doublons en cliquant Données > Supprimer les doublons, et dans le sauté Supprimer les doublons boîte de dialogue, vérifiez le Colonne nom que vous souhaitez supprimer les doublons, voir les captures d'écran:

doc-insert-numéro-manquant6 -2 doc-insert-numéro-manquant7

5. Puis clique OK, les doublons dans Colonne A a été supprimé et les numéros manquants dans la liste de séquences ont été insérés, voir capture d'écran:

doc-insert-numéro-manquant8


flèche bleue bulle droite Insérer les numéros manquants pour la séquence avec le code VBA

Si vous pensez qu'il y a tant d'étapes avec les méthodes ci-dessus, le code VBA peut également vous aider à résoudre ce problème. Veuillez procéder comme suit:

1. Maintenez le ALT + F11 clés, et il ouvre le Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Module fenêtre.

VBA: insérer les nombres manquants pour la séquence

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. Puis appuyez F5 clé pour exécuter ce code, et une boîte de dialogue apparaîtra, veuillez sélectionner la plage de données dans laquelle vous souhaitez insérer les nombres manquants (ne sélectionnez pas la plage de titre), voir capture d'écran:

doc-insert-numéro-manquant9

4. Et puis cliquez OK, les numéros manquants ont été insérés dans la liste de séquences. Voir les captures d'écran:

doc-insert-numéro-manquant1 -2 doc-insert-numéro-manquant2

flèche bleue bulle droite Insérer des lignes vides pour la séquence manquante avec le code VBA

Parfois, il vous suffit de localiser l'emplacement des nombres manquants et d'insérer des lignes vides entre les données, afin de pouvoir saisir les informations dont vous avez besoin. Bien sûr, le code VBA suivant peut également vous aider à résoudre ce problème.

1. Maintenez la touche ALT + F11 clés, et il ouvre un Microsoft Visual Basic pour applications fenêtre.

2Cliquez sur insérer > Moduleet collez le code suivant dans le Module fenêtre.

VBA: insérer des lignes vides pour la séquence manquante

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. Puis appuyez F5 clé pour exécuter ce code, et une boîte de dialogue s'affiche, puis sélectionnez la plage de données que vous souhaitez insérer des lignes vides pour la séquence manquante (ne sélectionnez pas la plage de titre), voir capture d'écran:

doc-insert-numéro-manquant9

4. Et puis cliquez OK, les lignes vides ont été insérées pour la liste des séquences manquantes. Voir les captures d'écran:

doc-insert-numéro-manquant1 -2 doc-insert-numéro-manquant10

flèche bleue bulle droite Insérez des nombres manquants ou des lignes vides pour la séquence avec Kutools for Excel

Ici, je vais vous présenter un outil simple et pratique- Kutools for Excel, Avec son Rechercher un numéro de séquence manquant , vous pouvez insérer rapidement le numéro de séquence manquant ou des lignes vides entre la séquence de données existante.

Kutools for Excel : avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation en 30 jours

Si vous avez installé Kutools for Excel, procédez comme suit:

1. Sélectionnez la séquence de données dans laquelle vous souhaitez insérer les nombres manquants.

2Cliquez sur Kutools > insérer > Rechercher un numéro de séquence manquant, voir capture d'écran:

3. Dans le Rechercher un numéro de séquence manquant boîte de dialogue, cochez Insertion d'un numéro de séquence manquant pour insérer les nombres manquants ou jensertion de lignes vides lors de la rencontre de numéros de séquence manquants pour insérer des lignes vides selon vos besoins. Voir la capture d'écran:

doc-insert-numéro-manquant10

4. Et puis cliquez OK bouton, et les numéros de séquence manquants ou les lignes vides ont été insérés dans les données, voir les captures d'écran:

doc-insert-numéro-manquant10 2 doc-insert-numéro-manquant10 2 doc-insert-numéro-manquant10

Téléchargez et essayez gratuitement Kutools for Excel Now!


flèche bleue bulle droite  Démo : insérez des nombres manquants ou des lignes vides pour la séquence avec Kutools for Excel

Kutools for Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jours. Téléchargez et essayez gratuitement maintenant!

Article connexe:

Comment identifier la séquence de nombres manquants dans Excel?

Meilleurs outils de productivité bureautique

🤖 Aide à l'IA Kutools: Révolutionner l'analyse des données en s'appuyant sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les fonctions Kutools...
Caractéristiques populaires: Rechercher, mettre en évidence ou identifier les doublons   |  Supprimer les lignes vides   |  Combinez des colonnes ou des cellules sans perdre de données   |   Tour sans formule 
Super recherche: VSearchup à critères multiples    VSearch à valeurs multiples  |   Recherche virtuelle sur plusieurs feuilles   |   Recherche floue ....
Liste déroulante avancée: Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple ....
Gestionnaire de colonnes: Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages et les colonnes 
Caractéristiques en vedette: Mise au point de la grille   |  Voir Design   |   Grande barre de formule    Gestionnaire de classeurs et de feuilles   |  Centre de ressources (Texte automatique)   |  Sélecteur de date   |  Combiner des feuilles de travail   |  Crypter/déchiffrer les cellules    Envoyer des e-mails par liste   |  Super filtre   |   Filtre spécial (filtre gras/italique/barré...) ...
Les 15 meilleurs ensembles d'outils12 Texte Outils (Ajouter du texte, Supprimer les caractères, ...)   |   50+ Graphique Types (Diagramme de Gantt, ...)   |   40+ Pratique Formules (Calculer l'âge en fonction de l'anniversaire, ...)   |   19 Insertion Outils (Insérer le code QR, Insérer une image à partir du chemin, ...)   |   12 Conversion Outils (Nombres en mots, Conversion des devises, ...)   |   7 Fusionner et fractionner Outils (Lignes de combinaison avancées, Cellules divisés, ...)   |   ... et plus

Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...

Description


Office Tab apporte une interface à onglets à Office et facilite grandement votre travail

  • Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!
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