Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Office

Sao Chép Hàng Giữa Các Sheet Theo Điều Kiện Trong Excel – 6 Phương Pháp Dễ Dàng

Giới Thiệu

Trong Excel, thường cần sao chép hàng từ sheet này sang sheet khác dựa trên tiêu chí nhất định (ví dụ: chỉ sao chép hàng có "Tổng giá > 150" hoặc "Loại trái cây = Mango"). Bài viết trình bày 6 phương pháp từ thủ công đến tự động hóa.

File Thực Hành

Tải file đính kèm để thực hành cùng các ví dụ.

6 Cách Sao Chép Hàng Theo Điều Kiện

1. Sử Dụng Tính Năng Lọc (Filter) – Thủ Công, Nhanh Cho Dữ Liệu Nhỏ

Áp dụng khi dữ liệu nhỏ, ít tiêu chí.

Ví Dụ: Sheet Filter Op. có dữ liệu Trái cây (Tên, Đơn giá, Khối lượng, Tổng giá). Sao chép hàng "Mango" sang sheet Result1.

Các Bước:

  1. Chọn dữ liệu (kể tiêu đề).
  2. Tab Data → Filter (Ctrl+Shift+L).
  3. Click mũi tên cột Fruits → Chỉ tick Mango → OK.
  4. Chọn dữ liệu đã lọc → Copy (Ctrl+C).
  5. Tạo sheet mới (+ hoặc Shift+F11) → Paste (Ctrl+V).

Kết quả: Sheet Result1 chỉ chứa hàng Mango.

2. Sử Dụng Advanced Filter (Bộ Lọc Nâng Cao) – Lọc Theo Điều Kiện Phức Tạp

Cho phép lọc theo điều kiện tính toán (ví dụ: Tổng giá > 150) và sao chép ra vị trí chỉ định không cần lọc tại chỗ.

Ví Dụ: Từ sheet Advanced sao chép sang Result1.1 các hàng có Tổng giá > 150.

Các Bước:

  1. Ở sheet kết quả (Result1.1), chọn một ô bất kỳ.
  2. Tab Data → Advanced.
  3. Chọn Copy to another location.
  4. List range: Chọn toàn bộ dữ liệu gốc (sheet Advanced).
  5. Criteria range: Chọn vùng chứa điều kiện (ví dụ: ô G1:G2, G1="Total Price", G2=">150").
  6. Copy to: Chọn ô bắt đầu dán kết quả (sheet Result1.1).
  7. Nhấn OK.

Kết quả: Dữ liệu lọc tự động dán vào sheet kết quả.

3. Sử Dụng Công Thức Mảng (Array Formula) – Tự Động Cập Nhật

Khi dữ liệu gốc thay đổi, kết quả tự cập nhật. Phù hợp chia dữ liệu theo "Shop Name" sang các sheet riêng.

Công Thức (Nhấn Ctrl+Shift+Enter trên Excel cũ, Enter trên Excel 365):

=IFERROR(INDEX(Sheet7!$A$4:$E$100, SMALL(IF(Sheet7!$F$4:$F$100=$F$3, ROW(Sheet7!$A$4:$B$100)-ROW(Sheet7!$B$4)+1), ROWS(Sheet7!$A$4:$B4)), COLUMN()), "")

Giải Thích Các Hàm:

  • ROWS: Đếm số hàng tham chiếu (tăng dần khi kéo xuống).
  • COLUMN: Lấy số cột (tăng dần khi kéo ngang).
  • SMALL(array, k): Trả về giá trị nhỏ thứ k (dùng để lấy hàng thỏa mãn điều kiện lần lượt 1, 2, 3...).
  • INDEX(array, row, col): Trả về giá trị tại giao cắt hàng/cột.
  • IFERROR: Trả về rỗng nếu không còn hàng thỏa mãn (tránh lỗi #NUM!).
  • Thực Hiện: Tạo sheet tên trùng "Shop Name" → Nhập công thức ô B4 → Kéo ngang, kéo dọc → Lặp lại cho các sheet khác.

    4. Kết Hợp Hàm (IF, MAX, INDEX, MATCH) – Tạo Danh Sach Số Thứ Tự Động

    Phương pháp "helper column" (cột phụ) trên sheet gốc, sau đó INDEX/MATCH trên sheet kết quả.

    Sheet Functions (Dữ Liệu Gốc):

    • Cột G (Helper): =IF(AND(F4=Sheet15!$C$1, E4>=130), MAX(G$1:G2)+1, "-").
    • Giải thích: Nếu Shop Name khớp (F4 = ô chọn trên sheet kết quả) VÀ Tổng giá >= 130 → gán số thứ tự tăng dần (MAX+1), ngược lại "-".

    Sheet Result2 (Kết Quả):

    • Ô B7: =IFERROR(INDEX(Sheet14!F:F, MATCH(ROWS($1:1), Sheet14!$G:$G, 0))&"", "").
    • Kéo ngang, kéo dọc. Chọn Shop Name từ dropdown → Kết quả tự động hiện.

    5. Sử Dụng Hàm FILTER (Excel 365/2021+) – Ngắn Gọn, Hiện Đại Nhất

    Hàm mảng động (Dynamic Array), tự tràn kết quả.

    Công Thức: =FILTER(FILTER!B4:F14, FILTER!F4:F14="Rooted")

    • Nhập tại ô B5 sheet Result3.
    • Kết quả tự động tràn ra các hàng, cột thỏa mãn điều kiện (Shop Name = "Rooted").
    • Dữ liệu gốc thay đổi → Kết quả tự cập nhật.

    6. Sử Dụng VBA (Macro) – Tự Động Hóa Hoàn Toàn, Có Nút Bấm

    Phù hợp quy trình lặp lại, người dùng không rành công thức.

    Các Bước:

    1. Tab Developer → Insert → ActiveX Command Button.
    2. Chỉnh Caption, Font trong Properties.
    3. Double-click nút → VBE mở ra → Dán code:
    Private Sub CommandButton1_Click()
        a = Worksheets("VBA").Cells(Rows.Count, 1).End(xlUp).Row
        For i = 2 To a
            If Worksheets("VBA").Cells(i, 4).Value > 150 Then
                Worksheets("VBA").Rows(i).Copy
                Worksheets("Result4").Activate
                b = Worksheets("Result4").Cells(Rows.Count, 1).End(xlUp).Row
                Worksheets("Result4").Cells(b + 1, 1).Select
                ActiveSheet.Paste
                Worksheets("VBA").Activate
            End If
        Next
        Application.CutCopyMode = False
        ThisWorkbook.Worksheets("VBA").Cells(1, 1).Select
    End Sub
    1. Đóng VBE → Thoát Design Mode → Click nút bấm trên sheet.
    2. Kết quả: Các hàng Tổng giá > 150 từ sheet VBA được copy sang sheet Result4.

    💡 Giải Thích Code: Duyệt từng hàng sheet VBA, kiểm tra cột 4 (Total Price) > 150 → Copy toàn hàng → Dán vào hàng trống tiếp theo sheet Result4.

    Kết Luận

    6 phương pháp từ cơ bản đến nâng cao:

    Phương PhápPhù HợpƯu ĐiểmNhược Điểm
    1. Filter Thủ CôngDữ liệu nhỏ, một lầnĐơn giản, không cần công thứcKhông tự động cập nhật
    2. Advanced FilterĐiều kiện phức tạp, một lầnSao chép ra vị trí chỉ địnhKhông tự động cập nhật
    3. Array FormulaCần tự động cập nhật, Excel cũTự động, không VBACông thức phức tạp, chậm trên data lớn
    4. Helper Column + INDEX/MATCHCần tương tác (dropdown chọn tiêu chí)Linh hoạt thay đổi tiêu chíCần cột phụ, setup phức tạp
    5. FILTER FunctionExcel 365/2021+, cần tự độngNgắn gọn, mạnh mẽ, tự trànChỉ Excel mới
    6. VBAQuy trình cố định, người dùng cuốiMột click, tự động hoàn toànCần cho phép Macro, bảo mật

    Chọn phương pháp phù hợp nhất với tình huống của bạn!

    Bài Viết Liên Quan

    • Cách Hiển Thị Văn Bản Từ Ô Khác Trong Excel (4 Cách)
    • VBA So Sánh 2 Sheet Và Copy Khác Biệt
    • Cách Dùng VBA Dán Chỉ Giá Trị (Không Định Dạng)
    • Copy Paste Không Hoạt Động Trong Excel (9 Nguyên Nhân & Giải Pháp)
    • Cách Copy Nhiều Hàng Bằng Macro (4 Ví Dụ)