Có thể bạn quan tâm: Lỗi In Excel Bị Nhảy Trang: Nguyên Nhân, Hậu Quả Và Cách Khắc Phục Chi Tiết
Mở Đầu
Trong quá trình làm việc với dữ liệu trên Microsoft Excel, chúng ta thường gặp các tình huống cần lặp lại một hoặc nhiều dòng để tạo mẫu, sao chép cấu trúc, hoặc chuẩn bị dữ liệu cho các bước phân tích tiếp theo. Việc lặp lại dòng không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu sai sót do nhập liệu thủ công. Bài viết này sẽ cung cấp cho bạn một hướng dẫn chi tiết, từ các cách thực hiện cơ bản tới các kỹ thuật nâng cao, bao gồm việc sử dụng công cụ Fill Handle, Copy‑Paste, Power Query, VBA, và Dynamic Array trong Excel 365/2026. Ngoài ra, chúng tôi sẽ giới thiệu một số mẹo thực tiễn và lưu ý quan trọng để bạn có thể áp dụng ngay vào công việc hàng ngày.
Lưu ý: Nội dung dưới đây được viết chi tiết, chia thành nhiều mục để dễ đọc và thực hành. Bạn có thể theo dõi từng bước, sao chép công thức hoặc macro vào file Excel của mình và kiểm tra kết quả ngay lập tức.
Có thể bạn quan tâm: Mẫu Hóa Đơn Bán Lẻ Excel: Hướng Dẫn Tạo, Tùy Chỉnh Và Ứng Dụng Thực Tiễn
1. Tại Sao Cần Lặp Lại Dòng Trong Excel?
1.1. Tạo Mẫu Dữ Liệu
Khi xây dựng mẫu dữ liệu (data template) cho các báo cáo, bảng tính chi phí, hay danh sách khách hàng, chúng ta thường muốn các cột và dòng có cùng cấu trúc. Thay vì tạo từng dòng một, lặp lại dòng giúp nhanh chóng sao chép cấu trúc.
1.2. Nhân Đôi Dữ Liệu Thử Nghiệm
Trong giai đoạn kiểm thử mô hình, chúng ta cần tạo dữ liệu giả với số lượng lớn để đánh giá hiệu năng. Lặp lại một vài dòng mẫu là cách nhanh nhất để có hàng nghìn bản ghi.
1.3. Chuẩn Bị Dữ Liệu Cho Các Công Cụ Khác
Các phần mềm thống kê, BI (Power BI, Tableau) thường yêu cầu dữ liệu ở dạng đúng chuẩn (tidy data). Khi dữ liệu chưa đầy đủ, việc lặp lại dòng giúp tạo ra các bản ghi đầy đủ cho mỗi biến.
1.4. Tự Động Hóa Công Việc
Trong các quy trình tự động (RPA, macro), lặp lại dòng là một phần của workflow để chuẩn bị dữ liệu cho các bước tiếp theo như tính toán, lọc, hay vẽ biểu đồ.
Có thể bạn quan tâm: Hàm In Đậm Trong Excel: Cách Sử Dụng, Ứng Dụng Thực Tiễn Và Mẹo Tối Ưu
2. Các Phương Pháp Lặp Lại Dòng Cơ Bản
2.1. Sử Dụng Fill Handle (Kéo Đổ)
Bước 1: Chọn ô hoặc dải ô chứa dữ liệu mẫu muốn lặp lại.
Bước 2: Đưa con trỏ chuột đến góc phải‑dưới của vùng chọn, con trỏ sẽ chuyển thành dấu + (Fill Handle).
Bước 3: Kéo xuống hoặc sang phải tùy ý. Excel sẽ tự động sao chép dữ liệu.
2.1.1. Lặp Lại Dòng Với Tự Động Tăng Dòng (Series)
Nếu muốn tự động tăng một giá trị (ví dụ: số thứ tự, ngày tháng), hãy:
- Gõ 1 vào ô A2, 2 vào ô A3, chọn cả hai ô, sau đó kéo Fill Handle. Excel sẽ nhận dạng chuỗi và tăng dần.
- Đối với ngày tháng, nhập 01/01/2026 vào ô A2, kéo xuống, Excel sẽ tăng ngày tự động.
2.1.2. Lặp Lại Dòng Không Thay Đổi Định Dạng
Khi muốn sao chép định dạng (font, màu, border) mà không sao chép nội dung:
- Chọn ô mẫu → Ctrl + C → Chọn vùng cần áp dụng → Ctrl + Alt + V → Chọn Formats → OK.
2.2. Sử Dụng Copy‑Paste (Sao Chép Dán)
Bước 1: Chọn dòng hoặc dải ô cần sao chép.
Bước 2: Nhấn Ctrl + C (hoặc chuột phải → Copy).
Bước 3: Đặt con trỏ vào ô đầu tiên của vị trí mới, nhấn Ctrl + V (Paste).
Lưu ý: Khi dán, Excel sẽ giữ công thức và điều chỉnh tham chiếu nếu chúng là tương đối (A1). Nếu muốn giữ công thức nguyên, dùng Paste Special → Values.
2.3. Dùng Tính Năng “Insert Copied Cells”
Nếu muốn chèn các dòng đã sao chép vào giữa các dòng hiện có:
- Copy dải ô cần chèn.
- Click chuột phải vào hàng mà bạn muốn chèn phía dưới (hoặc phía trên).
- Chọn Insert Copied Cells. Excel sẽ chèn và đẩy các dòng hiện có xuống.
2.4. Dùng “Flash Fill” (Điền Nhanh)
Flash Fill giúp tự động lặp lại mẫu dựa trên ví dụ đầu tiên. Ví dụ:
- Cột A chứa Tên Họ (John Doe). Bạn muốn tạo cột B chứa Tên Đầu (John). Nhập “John” vào B2, sau đó Ctrl + E (hoặc Data → Flash Fill). Excel sẽ nhận dạng và lặp lại cho toàn bộ cột.
3. Lặp Lại Dòng Bằng Công Thức
Khi dữ liệu cần lặp lại có công thức tính toán, chúng ta có thể dùng các hàm sau:
3.1. Hàm ROW() và INDEX()
Giả sử bạn có một bảng mẫu trong Sheet2!A1:C3 và muốn lặp lại nó 5 lần trong Sheet1.
=INDEX(Sheet2!A$1:C$3, MOD(ROW()-1,3)+1, COLUMN())
ROW()trả về số dòng hiện tại.MOD(ROW()-1,3)+1tạo chu kỳ 1‑3, lặp lại 5 lần khi kéo xuống.COLUMN()trả về chỉ số cột hiện tại.
Cách thực hiện:
- Nhập công thức vào ô A1 của Sheet1.
- Kéo công thức sang phải và xuống tới số dòng mong muốn (ví dụ: 15 dòng = 5 lần 3 dòng mẫu).
3.2. Hàm OFFSET() (Cẩn Thận Khi Dùng)
=OFFSET(Sheet2!$A$1, MOD(ROW()-1,3), COLUMN()-1)
OFFSETdịch chuyển từ ô gốc A1 theo số hàng và cột tính toán.MOD(ROW()-1,3)tạo chu kỳ hàng.
Lưu ý: OFFSET là hàm volatile, có thể làm chậm bảng tính khi dữ liệu lớn.
3.3. Hàm SEQUENCE() (Excel 365/2026)

Có thể bạn quan tâm: Không Insert Được Cột Trong Excel: Nguyên Nhân, Giải Pháp Và Cách Khắc Phục Chi Tiết
Nếu bạn dùng Excel 365, hàm SEQUENCE giúp tạo dải số nhanh chóng:
=LET( mẫu, Sheet2!A1:C3, n, 5, // số lần lặp rows, ROWS(mẫu), cols, COLUMNS(mẫu), SEQUENCE(rowsn, cols, 1, 1) 0 + mẫu
)
Công thức trên tạo một dải ô gồm 5 lần mẫu gốc.
4. Lặp Lại Dòng Với Power Query
Power Query (Get & Transform) là công cụ mạnh mẽ để xử lý dữ liệu mà không cần viết công thức phức tạp.
4.1. Nhập Dữ Liệu Mẫu
- Chọn bảng dữ liệu mẫu → Data → From Table/Range.
- Power Query Editor mở ra.
4.2. Thêm Cột Tự Động Tăng
- Add Column → Index Column → From 0 (đánh số từ 0).
- Đổi tên cột thành Index.
4.3. Tạo Bảng Lặp Lại
Giả sử bạn muốn lặp lại 3 lần:
- Home → Advanced Editor và thay đổi đoạn M code:
let Source = Excel.CurrentWorkbook(){Name="TableMau"}Content, LầnLặp = 3, ThêmIndex = Table.AddIndexColumn(Source, "Index", 0, 1), NhânBản = List.Generate( ()=> i=0, each i < LầnLặp, each i=i+1, each Table.AddColumn(ThêmIndex, "LầnLặp", each i) ), KếtHợp = Table.Combine(NhânBản)
in KếtHợp
List.Generatetạo danh sách các bảng, mỗi bảng là một bản sao của Source kèm cột LầnLặp.Table.Combinehợp các bảng lại thành một.Nhấn Done, rồi Close & Load để đưa dữ liệu về Excel.
4.4. Lợi Ích Khi Dùng Power Query
- Không thay đổi công thức trong sheet gốc.
- Dễ dàng điều chỉnh số lần lặp chỉ bằng cách thay đổi giá trị
LầnLặp. - Tự động làm mới khi dữ liệu nguồn thay đổi.
5. Tự Động Hóa Bằng VBA (Macro)
Đối với các trường hợp lặp lại phức tạp, VBA cung cấp độ linh hoạt tối đa.
5.1. Macro Cơ Bản: Sao Chép Dòng Nhiều Lần
Sub LapLaiDong() Dim srcRng As Range, dstRng As Range Dim i As Long, n As Long ' Đặt phạm vi nguồn (ví dụ A2:C4) Set srcRng = Worksheets("Sheet2").Range("A2:C4") ' Số lần lặp n = 5 ' Đặt vị trí bắt đầu dán (ví dụ Sheet1!A2) Set dstRng = Worksheets("Sheet1").Range("A2") For i = 1 To n srcRng.Copy Destination:=dstRng.Offset((i - 1) srcRng.Rows.Count, 0) Next i Application.CutCopyMode = False MsgBox "Hoàn thành lặp lại " & n & " lần."
End Sub
Giải thích:
srcRnglà dải ô mẫu.nlà số lần muốn lặp.dstRng.Offsetdịch vị trí dán xuống mỗi lần, dựa trên số hàng của mẫu.
5.2. Macro Nâng Cao: Lặp Lại Với Công Thức Động
Giả sử bạn muốn sao chép dữ liệu và đồng thời cập nhật công thức để tham chiếu đúng.
Sub LapLaiDongCoCongThuc() Dim src As ListObject, dst As ListObject Dim i As Long, n As Long Dim wsSrc As Worksheet, wsDst As Worksheet Set wsSrc = Worksheets("Mau") Set wsDst = Worksheets("KetQua") Set src = wsSrc.ListObjects(1) ' Giả sử bảng mẫu là ListObject n = 7 ' Lặp lại 7 lần For i = 1 To n src.Range.Copy wsDst.Cells(wsDst.Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteAll ' Nếu cần điều chỉnh công thức, ví dụ thay đổi tham chiếu hàng With wsDst .Range(.Cells(.Rows.Count, 1).End(xlUp).Address).Offset(0, 0).Formula = _ Replace(.Range(.Cells(.Rows.Count, 1).End(xlUp).Address).Offset(0, 0).Formula, "ROW()", "ROW()-" & (i - 1) src.Range.Rows.Count) End With Next i Application.CutCopyMode = False MsgBox "Đã lặp lại dữ liệu " & n & " lần với công thức cập nhật."
End Sub
5.3. Khi Nào Nên Dùng VBA?
- Khi số lần lặp thay đổi thường xuyên và cần một nút bấm để thực hiện.
- Khi cần xử lý logic phức tạp (điều kiện, lọc, tạo cột mới).
- Khi muốn tự động ghi log hoặc gửi email sau khi lặp.
6. Sử Dụng Dynamic Array (Excel 365) Để Tạo Dòng Lặp
6.1. Hàm MAKEARRAY
MAKEARRAY cho phép tạo mảng tùy chỉnh dựa trên vị trí hàng và cột.
=MAKEARRAY(15, 3, LAMBDA(r,c, INDEX(Sheet2!A$1:C$3, MOD(r-1,3)+1, c)))
15là tổng số hàng (5 lần 3 hàng mẫu).3là số cột.LAMBDAtrả về giá trị tương ứng từ mẫu.
6.2. Hàm LET Kết Hợp Với SEQUENCE
=LET( mẫu, Sheet2!A1:C3, n, 5, rows, ROWS(mẫu), cols, COLUMNS(mẫu), seq, SEQUENCE(rowsn, cols, 1, 1), INDEX(mẫu, MOD(seq-1, rows)+1, SEQUENCE(1, cols, 1, 1))
)
Công thức này tránh lặp lại công thức trong từng ô, thay vào đó trả về một dải ô duy nhất.
7. Các Tình Huống Thực Tiễn
7.1. Tạo Đơn Hàng Mẫu Cho 100 Khách Hàng
Bạn có một mẫu đơn hàng (5 dòng) và danh sách 100 khách hàng. Muốn tạo đơn hàng cho mỗi khách:
- Chuẩn bị bảng khách hàng (cột A: Mã KH, B: Tên KH).
- Tạo mẫu đơn trong Sheet2.
- Sử dụng Power Query:
- Nhập bảng khách hàng và mẫu đơn.
- Thêm cột
Custom=Table.AddColumn(mẫu, "MãKH", each MãKH). - Dùng
Expandđể tạo 5 dòng cho mỗi khách.
7.2. Nhân Đôi Dòng Để Tính Tổng Hợp
Bạn có bảng chi phí hàng tháng (cột A: Tháng, B: Chi phí). Muốn tạo bảng chi phí dự báo cho 12 tháng tiếp theo, lặp lại cùng cấu trúc nhưng tăng 5% mỗi tháng.
Công thức:
=LET( dữ liệu, A2:B13, n, 12, rows, ROWS(dữ liệu), tăng, 5%, seq, SEQUENCE(rowsn, 2, 1, 1), month, INDEX(dữ liệu, MOD(seq-1, rows)+1, 1) + INT((seq-1)/rows), cost, INDEX(dữ liệu, MOD(seq-1, rows)+1, 2) (1 + tăng) ^ INT((seq-1)/rows), HSTACK(month, cost)
)
7.3. Định Dạng Động Khi Lặp Lại
Bạn muốn đánh dấu màu cho mỗi khối lặp (ví dụ: mỗi 3 dòng một màu). Sử dụng Conditional Formatting:
- Chọn toàn bộ dải dữ liệu lặp.
- Home → Conditional Formatting → New Rule → Use a formula.
- Công thức:
=MOD(INT((ROW()-ROW($A$2))/3),2)=0
- Đặt màu nền Light Blue cho các khối chẵn; tạo quy tắc thứ hai với
=MOD(...,2)=1cho màu Light Green.
8. Các Lưu Ý Khi Lặp Lại Dòng
| Vấn đề | Nguyên nhân | Giải pháp |
|---|---|---|
| Công thức sai | Tham chiếu tương đối không cập nhật đúng | Dùng Absolute Reference ($A$1) hoặc OFFSET/INDEX để kiểm soát |
| Dữ liệu quá lớn | Lặp lại hàng nghìn lần gây chậm Excel | Sử dụng Power Query hoặc VBA để xử lý ngoài sheet |
| Định dạng mất | Copy‑Paste không giữ định dạng | Dùng Paste Special → Formats hoặc Format Painter |
| Số lượng dòng không khớp | Khi lặp lại với MOD và ROW() không tính đúng | Kiểm tra ROWS(mẫu) và COLUMNS(mẫu) trong công thức |
| Macro không chạy | Bảo mật macro bị tắt | Vào File → Options → Trust Center → Trust Center Settings → Macro Settings và chọn “Enable all macros” (cẩn thận với nguồn không đáng tin) |
9. Tổng Kết
Việc lặp lại dòng trong Excel không chỉ là một thao tác sao chép đơn giản, mà còn là một kỹ năng quan trọng giúp bạn:
- Tiết kiệm thời gian khi tạo mẫu dữ liệu.
- Chuẩn bị dữ liệu cho các bước phân tích và báo cáo.
- Tự động hóa quy trình công việc thông qua Power Query hoặc VBA.
- Đảm bảo tính nhất quán và giảm lỗi nhập liệu.
Bạn có thể lựa chọn công cụ phù hợp dựa trên độ phức tạp và khối lượng dữ liệu:
| Nhu cầu | Công cụ đề xuất |
|---|---|
| Lặp lại nhanh, ít dòng | Fill Handle, Copy‑Paste |
| Lặp lại có công thức động | INDEX, OFFSET, SEQUENCE |
| Lặp lại hàng nghìn, cần làm sạch dữ liệu | Power Query |
| Tự động hoá, tùy chỉnh sâu | VBA |
| Sử dụng Excel 365/2026 | Dynamic Array (LET, MAKEARRAY) |
Hy vọng bài viết đã cung cấp cho bạn hướng dẫn chi tiết và các ví dụ thực tiễn để áp dụng ngay trong công việc. Hãy thử từng phương pháp, kết hợp chúng nếu cần, và bạn sẽ thấy Excel trở nên mạnh mẽ hơn bao giờ hết.
Chúc bạn thành công!

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ẻ.
