Bỏ qua nội dung chính

Làm cách nào để chèn số hoặc hàng cho các số tuần tự bị thiếu trong Excel?

Giả sử bạn có một danh sách các số liên tiếp trong một trang tính, nhưng có một số số bị thiếu giữa các dãy và bây giờ bạn cần phải chèn các số còn thiếu hoặc các hàng trống để đảm bảo dãy được hoàn chỉnh (được hiển thị như ảnh chụp màn hình sau). Làm thế nào bạn có thể nhanh chóng giải quyết vấn đề này trong Excel?

doc-insert-thiếu-number1 -2 doc-insert-thiếu-number2

Chèn các số còn thiếu cho chuỗi với tính năng Sắp xếp và Xóa các Từ trùng lặp

Chèn các số còn thiếu cho chuỗi bằng mã VBA

Chèn các hàng trống cho trình tự bị thiếu với mã VBA

Chèn số bị thiếu hoặc hàng trống cho chuỗi với Kutools cho Excel


mũi tên màu xanh bong bóng bên phải Chèn các số còn thiếu cho chuỗi với tính năng Sắp xếp và Xóa các Từ trùng lặp

Có thể bạn có thể tìm từng số còn thiếu rồi chèn chúng vào, nhưng bạn sẽ khó xác định được vị trí của những số còn thiếu nếu có hàng trăm số liên tiếp. Trong Excel, tôi có thể sử dụng tính năng Sắp xếp và Loại bỏ Bản sao để giải quyết công việc này.

1. Sau khi kết thúc danh sách chuỗi, hãy điền vào một số thứ tự khác từ 2005023001 đến 2005023011. Xem ảnh chụp màn hình:

doc-insert-thiếu-number3

2. Sau đó, chọn phạm vi của hai số thứ tự và nhấp vào Ngày > Sắp xếp A đến Z, xem ảnh chụp màn hình:

doc-insert-thiếu-number4

3. Và dữ liệu đã chọn đã được sắp xếp như ảnh chụp màn hình sau:

doc-insert-thiếu-number5

4. Sau đó, bạn cần loại bỏ các bản sao bằng cách nhấp vào Ngày > Loại bỏ các bản saovà trong cửa sổ bật ra Loại bỏ các bản sao hộp thoại, kiểm tra Cột tên mà bạn muốn xóa trùng lặp, hãy xem ảnh chụp màn hình:

doc-insert-thiếu-number6 -2 doc-insert-thiếu-number7

5. Sau đó nhấn vào OK, các bản sao trong Cột A đã bị xóa và các số bị thiếu trong danh sách trình tự đã được chèn vào, xem ảnh chụp màn hình:

doc-insert-thiếu-number8


mũi tên màu xanh bong bóng bên phải Chèn các số còn thiếu cho chuỗi bằng mã VBA

Nếu bạn cảm thấy có quá nhiều bước với các phương pháp trên, thì đây cũng có mã VBA có thể giúp bạn giải quyết vấn đề này. Vui lòng làm như sau:

1. Giữ ALT + F11 chìa khóa và nó mở Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun cửa sổ.

VBA: chèn các số còn thiếu cho chuỗi

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. Sau đó nhấn F5 để chạy mã này và hộp nhắc sẽ bật ra, vui lòng chọn phạm vi dữ liệu mà bạn muốn chèn các số còn thiếu (không chọn phạm vi tiêu đề), xem ảnh chụp màn hình:

doc-insert-thiếu-number9

4. Và sau đó nhấp vào OK, các số còn thiếu đã được chèn vào danh sách trình tự. Xem ảnh chụp màn hình:

doc-insert-thiếu-number1 -2 doc-insert-thiếu-number2

mũi tên màu xanh bong bóng bên phải Chèn các hàng trống cho trình tự bị thiếu với mã VBA

Đôi khi, bạn chỉ cần xác định vị trí của các số bị thiếu và chèn các hàng trống vào giữa dữ liệu để có thể nhập thông tin khi cần. Tất nhiên, mã VBA sau đây cũng có thể giúp bạn giải quyết vấn đề này.

1. Giữ phím tắt ALT + F11 chìa khóa, và nó mở ra một Microsoft Visual Basic cho các ứng dụng cửa sổ.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Mô-đun cửa sổ.

VBA: chèn các hàng trống cho trình tự bị thiếu

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. Sau đó nhấn F5 để chạy mã này và một hộp nhắc sẽ hiển thị, sau đó chọn phạm vi dữ liệu mà bạn muốn chèn các hàng trống cho chuỗi bị thiếu (không chọn phạm vi tiêu đề), xem ảnh chụp màn hình:

doc-insert-thiếu-number9

4. Và sau đó nhấp vào OK, các hàng trống đã được chèn cho danh sách trình tự bị thiếu. Xem ảnh chụp màn hình:

doc-insert-thiếu-number1 -2 doc-insert-thiếu-number10

mũi tên màu xanh bong bóng bên phải Chèn số bị thiếu hoặc hàng trống cho chuỗi với Kutools cho Excel

Ở đây, tôi sẽ giới thiệu một công cụ dễ dàng và tiện dụng- Kutools cho Excel, Với khả Tìm số thứ tự bị thiếu tính năng, bạn có thể nhanh chóng chèn số thứ tự bị thiếu hoặc các hàng trống vào giữa chuỗi dữ liệu hiện có.

Kutools cho Excel : với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày

Nếu bạn đã cài đặt Kutools cho Excel, vui lòng làm như sau:

1. Chọn chuỗi dữ liệu mà bạn muốn chèn các số còn thiếu.

2. Nhấp chuột Kutools > Chèn > Tìm số thứ tự bị thiếu, xem ảnh chụp màn hình:

3. Trong Tìm số thứ tự bị thiếu hộp thoại, kiểm tra Chèn số thứ tự bị thiếu để chèn các số còn thiếu hoặc tôichèn các hàng trống khi gặp các số thứ tự bị thiếu để chèn các hàng trống khi bạn cần. Xem ảnh chụp màn hình:

doc-insert-thiếu-number10

4. Và sau đó nhấp vào OK và các số thứ tự bị thiếu hoặc hàng trống đã được chèn vào dữ liệu, hãy xem ảnh chụp màn hình:

doc-insert-thiếu-number10 2 doc-insert-thiếu-number10 2 doc-insert-thiếu-number10

Tải xuống và dùng thử miễn phí Kutools cho Excel ngay!


mũi tên màu xanh bong bóng bên phải  Demo: Chèn số bị thiếu hoặc hàng trống cho chuỗi với Kutools cho Excel

Kutools cho Excel: với hơn 300 bổ trợ Excel tiện dụng, dùng thử miễn phí không giới hạn trong 30 ngày. Tải xuống và dùng thử miễn phí ngay!

Bài viết liên quan:

Làm thế nào để xác định dãy số bị thiếu trong Excel?

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
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