Có thể bạn quan tâm: Auto Hide Rows In Excel: Hướng Dẫn Chi Tiết Tự Động Ẩn Hàng Để Tối Ưu Hoá Bảng Tính
Mở Đầu
Excel là công cụ mạnh mẽ cho việc quản lý dữ liệu, phân tích và báo cáo. Trong quá trình làm việc, chúng ta thường gặp nhu cầu chèn thêm dòng mới một cách nhanh chóng và tự động, đặc biệt là khi xử lý các danh sách lớn, bảng tính có cấu trúc lặp lại, hoặc khi cần tạo biểu mẫu nhập liệu. Việc thực hiện thao tác “Insert Row” (chèn dòng) một cách thủ công sẽ tốn thời gian và dễ gây lỗi, do đó việc tự động hoá quá trình này là một kỹ năng quan trọng đối với người dùng Excel ở mọi cấp độ.
Bài viết này sẽ cung cấp hướng dẫn chi tiết, đầy đủ các phương pháp để tự động chèn dòng trong Excel, bao gồm:
- Sử dụng tính năng Table (Bảng) và structured references.
- Áp dụng Formulas (công thức) như
OFFSET,INDEX,ROW. - Tận dụng VBA (Visual Basic for Applications) để viết macro chèn dòng.
- Dùng Power Query để tạo dòng mới trong quá trình tải dữ liệu.
- Kết hợp Excel Add‑ins và Power Automate cho các quy trình phức tạp.
- Các mẹo và lưu ý khi triển khai tự động chèn dòng trong thực tế.
Mục tiêu của chúng ta là giúp bạn không chỉ biết cách thực hiện mà còn hiểu nguyên tắc hoạt động, điều kiện áp dụng, và cách tối ưu để tránh các lỗi thường gặp như việc chèn sai vị trí, mất công thức, hoặc làm hỏng dữ liệu.
Có thể bạn quan tâm: Cách Tự Động Đánh Màu Ô Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
1. Tại Sao Cần Auto Insert Row?
1.1. Tiết Kiệm Thời Gian
- Số lượng lớn: Khi cần chèn hàng cho hàng chục, trăm, thậm chí nghìn bản ghi, thao tác thủ công sẽ rất mất công.
- Lặp lại: Các quy trình thường xuyên (ví dụ: nhập dữ liệu hàng ngày) yêu cầu chèn hàng ở cùng vị trí.
1.2. Đảm Bảo Độ Chính Xác
- Giảm lỗi người dùng: Khi người dùng quên chèn dòng hoặc chèn ở sai vị trí, dữ liệu sẽ bị sai lệch.
- Giữ công thức: Khi chèn dòng trong một bảng có công thức, công thức sẽ tự động mở rộng nếu dùng Table, nhưng nếu không, công thức có thể bị phá vỡ.
1.3. Tăng Tính Linh Hoạt
- Kịch bản phức tạp: Khi cần chèn dòng dựa trên điều kiện (ví dụ: chèn dòng “Tổng” sau mỗi nhóm) thì cần tự động hoá.
- Kết hợp với các nguồn dữ liệu: Khi dữ liệu được tải từ các file khác hoặc từ web, việc chèn dòng tự động giúp chuẩn bị báo cáo nhanh hơn.
Có thể bạn quan tâm: Aristotle Và “excellence Is A Habit”: Cách Biến Sự Xuất Sắc Thành Thói Quen Hàng Ngày
2. Sử Dụng Table (Bảng) Và Structured References
2.1. Tạo Table
- Chọn dải dữ liệu cần biến thành Table.
- Nhấn Ctrl + T hoặc vào Insert → Table.
- Đánh dấu “My table has headers” nếu có tiêu đề.
Khi dữ liệu được chuyển thành Table, Excel sẽ tự động mở rộng công thức, định dạng và áp dụng các tính năng như Total Row, Filters, Slicers.
2.2. Auto Insert Row Khi Thêm Dữ Liệu
- Cách thực hiện: Khi bạn gõ dữ liệu vào dòng cuối cùng của Table, Excel sẽ tự động tạo một dòng mới (dòng trống) ngay dưới.
- Lợi ích: Không cần nhấn
Insert → Row. Dòng mới sẽ tự động nhận structured references (ví dụ:@Column1).
2.3. Sử Dụng Data Validation Để Tự Động Thêm Dòng
Bạn có thể tạo Dropdown List để người dùng chọn “Thêm dòng” và sử dụng Worksheet_Change (VBA) để chèn dòng khi giá trị này được chọn. Đây là cách kết hợp Table và VBA.
3. Công Thức Tự Động Tạo Dòng Mới
Mặc dù công thức không thể chèn dòng thực tế, nhưng chúng có thể giả lập việc hiển thị dữ liệu như có thêm dòng, hữu ích trong các báo cáo động.
3.1. OFFSET + COUNTA
Giả sử bạn có danh sách ở cột A, muốn tạo một danh sách mở rộng trong cột B.
=OFFSET($A$1,0,0,COUNTA($A:$A),1)
OFFSET($A$1,0,0,COUNTA($A:$A),1)trả về một range có độ cao bằng số ô không rỗng trong cột A.- Khi người dùng nhập thêm dữ liệu vào cột A, công thức trong cột B sẽ tự động mở rộng.
3.2. INDEX + ROW
Để lấy dữ liệu từ một bảng và chèn “dòng tổng” sau mỗi nhóm:
=IF(MOD(ROW()-1,5)=0,"Tổng",INDEX($A$2:$A$100,INT((ROW()-2)/5)+1))
- Ở đây, mỗi 5 dòng dữ liệu sẽ có một dòng “Tổng”. Công thức này không tạo dòng thực mà chỉ hiển thị giá trị “Tổng” dựa trên vị trí.
3.3. FILTER (Excel 365)
Khi dùng Excel 365, FILTER có thể trả về mảng động, cho phép tự động mở rộng:
=FILTER(OriginalTableColumn1, OriginalTableColumn1<>"" )
Khi thêm dữ liệu mới vào OriginalTable, kết quả FILTER sẽ tự động cập nhật, tạo cảm giác như có thêm dòng.
4. VBA – Macro Tự Động Chèn Dòng
4.1. Khi Nào Nên Dùng VBA?
- Khi cần chèn dòng tại vị trí cụ thể (ví dụ: sau mỗi nhóm, trước một tiêu đề).
- Khi muốn điều kiện (chèn dòng nếu giá trị > 1000, hoặc nếu ô trống).
- Khi thực hiện nhiều thao tác (chèn, sao chép, định dạng) trong một quy trình.
4.2. Mở Trình Soạn Thảo VBA
- Nhấn Alt + F11.
- Trong Project Explorer, chọn workbook hoặc sheet muốn áp dụng.
- Chọn Insert → Module để tạo module mới.
4.3. Ví Dụ 1: Chèn Dòng Trống Sau Dòng Được Chọn
Sub InsertRowBelowSelection() Dim rng As Range Set rng = Selection.Rows(1) ' Lấy dòng đầu tiên của vùng chọn rng.Offset(1).EntireRow.Insert Shift:=xlDown
End Sub
- Cách dùng: Chọn bất kỳ ô nào, chạy macro → một dòng trống sẽ được chèn ngay dưới dòng hiện tại.
4.4. Ví Dụ 2: Chèn Dòng “Tổng” Sau Mỗi Nhóm
Giả sử cột A chứa tên nhóm, cột B chứa giá trị.
Sub InsertSubtotalRows() Dim ws As Worksheet Dim lastRow As Long, i As Long Set ws = ThisWorkbook.Sheets("Sheet1") lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row For i = lastRow To 2 Step -1 If ws.Cells(i, "A").Value <> ws.Cells(i - 1, "A").Value Then ws.Rows(i).Insert Shift:=xlDown ws.Cells(i, "A").Value = "Subtotal " & ws.Cells(i - 1, "A").Value ws.Cells(i, "B").Formula = "=SUBTOTAL(9,B" & i + 1 & ":B" & lastRow & ")" End If Next i
End Sub
- Giải thích:
- Duyệt từ cuối lên đầu để tránh làm thay đổi chỉ số khi chèn.
- Khi nhóm thay đổi, chèn một dòng và đặt công thức
SUBTOTAL.
4.5. Ví Dụ 3: Tự Động Chèn Dòng Khi Nhập Dữ Liệu Vào Bảng
Private Sub Worksheet_Change(ByVal Target As Range) Dim tbl As ListObject Set tbl = Me.ListObjects("MyTable") ' Kiểm tra nếu thay đổi nằm trong cột cuối cùng của bảng If Not Intersect(Target, tbl.ListColumns(tbl.ListColumns.Count).DataBodyRange) Is Nothing Then If Application.WorksheetFunction.CountA(Target) > 0 Then ' Nếu ô vừa nhập không rỗng, tự động thêm một dòng mới tbl.ListRows.Add End If End If
End Sub
- Cách hoạt động: Khi người dùng nhập dữ liệu vào cột cuối cùng của Table
MyTable, VBA sẽ tự động thêm một dòng mới vào Table, cho phép nhập tiếp.
4.6. Bảo Mật và Cài Đặt Macro
- Kích hoạt macro: Vào File → Options → Trust Center → Trust Center Settings → Macro Settings và chọn “Enable all macros” (không khuyến khích trên môi trường sản xuất) hoặc “Disable all macros with notification”.
- Ký số: Đối với môi trường doanh nghiệp, ký macro bằng chứng thực số để tránh cảnh báo.
5. Power Query – Tự Động Thêm Dòng Khi Đưa Dữ Liệu Vào Excel

Có thể bạn quan tâm: Cách Tự Động Tăng Số Liệu Trong Excel: Hướng Dẫn Chi Tiết Và Thực Hành
Power Query (Get & Transform) cho phép xử lý dữ liệu trước khi tải vào sheet, bao gồm việc thêm dòng (row) dựa trên logic.
5.1. Thêm Dòng Tĩnh (Static Row)
- Chọn Data → Get Data → From Other Sources → Blank Query.
- Trong Advanced Editor, nhập:
let Source = #table( {"Column1","Column2"}, { {"Header1","Header2"}, {"Data1","Data2"}, {"", ""} // Dòng trống })
in Source
- Khi tải dữ liệu, dòng trống sẽ xuất hiện.
5.2. Thêm Dòng Dựa Trên Điều Kiện
Giả sử bạn có bảng Sales và muốn chèn dòng “Grand Total” sau khi tính tổng.
let Source = Excel.CurrentWorkbook(){Name="Sales"}Content, Grouped = Table.Group(Source, {}, {{"GrandTotal", each List.Sum(Amount), type number}}), AddedTotal = Table.InsertRows(Source, Table.RowCount(Source), {GrandTotal = Grouped{0}GrandTotal})
in AddedTotal
Table.InsertRowscho phép chèn một hoặc nhiều dòng vào vị trí chỉ định.
5.3. Tự Động Cập Nhật Khi Dữ Liệu Thay Đổi
- Khi dữ liệu nguồn thay đổi, chỉ cần Refresh (F5) để Power Query tự động tính lại và chèn lại dòng mới.
6. Power Automate (Microsoft Flow) – Tự Động Hóa Nhiều Bước
Power Automate cho phép tạo workflow giữa Excel Online và các dịch vụ khác (SharePoint, Teams, Outlook).
6.1. Kịch Bản Cơ Bản
- Trigger: Khi một hàng mới được thêm vào bảng Excel (Excel Online (Business) – “When a row is added”).
- Action: Sử dụng “Insert row” để chèn một dòng tổng vào vị trí xác định (có thể tính toán dòng hiện tại và cộng thêm 1).
6.2. Lợi Ích
- Không cần mã VBA: Dễ dàng chia sẻ với người dùng không có quyền chạy macro.
- Tích hợp: Gửi email thông báo, cập nhật SharePoint list cùng lúc.
7. Add‑Ins và Công Cụ Bên Thứ Ba
7.1. ASAP Utilities
- Cung cấp tính năng “Insert Blank Row” nhanh chóng.
- Cho phép chèn nhiều dòng cùng lúc dựa trên lựa chọn.
7.2. Kutools for Excel
- Tính năng Insert Blank Row và Insert Row with Same Formatting.
- Cho phép chèn dòng dựa trên điều kiện (nếu ô A > 1000, chèn dòng).
7.3. How to Install
- Tải file
.xlamtừ website chính thức. - Vào File → Options → Add‑Ins → Excel Add‑ins → Go.
- Đánh dấu vào add‑in vừa tải và OK.
8. Các Bước Thực Tế Áp Dụng Auto Insert Row
Bước 1: Xác Định Nhu Cầu
- Chèn sau mỗi nhóm? → Dùng VBA hoặc Power Query.
- Chèn khi nhập dữ liệu? → Dùng Table + VBA.
- Chèn dòng tổng? → Dùng công thức
SUBTOTALhoặc VBA.
Bước 2: Lựa Chọn Công Cụ Phù Hợp
| Nhu Cầu | Công Cụ Đề Xuất | Lý Do |
|---|---|---|
| Dữ liệu tĩnh, ít thay đổi | Table + Data Validation | Đơn giản, không cần mã |
| Thêm dòng tự động khi nhập | VBA Worksheet_Change | Tự động, linh hoạt |
| Báo cáo tổng hợp, nhóm | Power Query + Table | Xử lý dữ liệu trước khi tải |
| Kết nối đa nền tảng | Power Automate | Tự động hoá qua cloud |
| Người dùng không chuyên | Add‑ins (Kutools) | Giao diện người dùng |
Bước 3: Thiết Lập và Kiểm Tra
- Tạo môi trường thử nghiệm (sheet mẫu).
- Áp dụng công thức / macro.
- Kiểm tra với các trường hợp: dữ liệu rỗng, dữ liệu dài, thay đổi định dạng.
- Ghi chú các lỗi và điều chỉnh.
Bước 4: Đưa Vào Sản Xuất
- Sao lưu file gốc.
- Bảo mật macro (digital signature).
- Đào tạo người dùng cuối (cách kích hoạt macro, cách refresh Power Query).
9. Những Lưu Ý Khi Sử Dụng Auto Insert Row
9.1. Không Gây Xáo Trộn Công Thức
- Khi chèn dòng, các công thức đối chiếu (absolute reference
$A$1) sẽ không thay đổi. Hãy sử dụng relative references hoặc structured references trong Table để công thức tự cập nhật.
9.2. Định Dạng Đồng Nhất
- Sử dụng Table Styles hoặc Format Painter để đảm bảo dòng mới có cùng màu, font, border.
9.3. Quản Lý Độ Phức Tạp
- Nếu macro quá phức tạp, hãy bình luận (comment) mã để người khác dễ hiểu.
- Đối với Power Query, đặt tên step rõ ràng (ví dụ:
Added_Total_Row).
9.4. Hiệu Năng
- VBA: Khi xử lý hàng ngàn dòng, tắt
ScreenUpdatingvàCalculationtạm thời để tăng tốc:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'... code ...
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
- Power Query: Tránh tải toàn bộ dữ liệu nếu không cần; dùng
Table.SelectRowsđể lọc trước.
9.5. Độ Bảo Mật
- Khi chia sẻ file có macro, đảm bảo người nhận tin cậy nguồn macro.
- Đối với dữ liệu nhạy cảm, tránh lưu macro có hard‑coded passwords.
10. Tổng Kết
Tự động chèn dòng trong Excel không chỉ là một tính năng tiện lợi mà còn là một chiến lược tối ưu hoá quy trình làm việc. Tùy thuộc vào môi trường và yêu cầu, bạn có thể:
- Sử dụng Table để nhận được chức năng “auto‑expand” ngay lập tức.
- Áp dụng công thức để tạo dải dữ liệu động mà không cần thay đổi cấu trúc.
- Viết VBA cho các kịch bản phức tạp, đa điều kiện.
- Khai thác Power Query để xử lý dữ liệu trước khi đưa vào sheet.
- Tích hợp Power Automate cho quy trình đa nền tảng và không cần mã.
- Cài đặt Add‑ins để có giao diện trực quan, phù hợp cho người không chuyên.
Việc lựa chọn công cụ phù hợp sẽ giúp bạn tiết kiệm thời gian, giảm lỗi, và nâng cao hiệu suất trong công việc hàng ngày. Hãy thử áp dụng các phương pháp trên vào dự án thực tế của mình, và đừng ngại khám phá thêm các tính năng mới của Excel để tối ưu hoá hơn nữa.
Tip cuối cùng: Khi xây dựng một giải pháp tự động chèn dòng, luôn giữ một bản sao lưu (backup) của file gốc và ghi chú chi tiết các bước thực hiện. Điều này sẽ giúp bạn nhanh chóng khôi phục khi gặp sự cố và dễ dàng chia sẻ kiến thức với đồng nghiệp.
Chúc bạn thành công trong việc tự động hoá Excel!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
