Có thể bạn quan tâm: Cách Xóa Chữ “page 1” Trong Excel: Hướng Dẫn Chi Tiết Từng Bước
Lời mở đầu
Trong môi trường làm việc hiện đại, Excel đã trở thành công cụ không thể thiếu đối với các nhà quản lý, kế toán, nhân viên bán hàng và bất kỳ ai cần xử lý dữ liệu một cách nhanh chóng và hiệu quả. Một trong những nhiệm vụ phổ biến nhất khi làm việc với dữ liệu là lọc mã hàng – tức là chọn ra những dòng dữ liệu chứa các mã sản phẩm (SKU) hoặc mã hàng cụ thể mà chúng ta quan tâm. Việc lọc mã hàng không chỉ giúp tiết kiệm thời gian mà còn nâng cao độ chính xác trong việc phân tích, báo cáo và đưa ra quyết định kinh doanh.
Bài viết này sẽ cung cấp cho bạn một hướng dẫn toàn diện, chi tiết, từ cơ bản đến nâng cao, về cách lọc mã hàng trong Excel. Chúng tôi sẽ giới thiệu các phương pháp lọc truyền thống, sử dụng công cụ Advanced Filter, công thức mảng, Power Query, VBA và thậm chí là cách tích hợp với Power BI. Ngoài ra, chúng tôi sẽ chia sẻ một số mẹo thực tiễn, các lỗi thường gặp và cách khắc phục, giúp bạn trở thành một “bậc thầy” trong việc xử lý và lọc mã hàng trong Excel.
Có thể bạn quan tâm: Sao Chép Công Thức Trong Excel: Hướng Dẫn Chi Tiết Và Các Mẹo Thủ Thuật Để Tăng Năng Suất
1. Hiểu Rõ Về Dữ Liệu Mã Hàng
1.1 Định Nghĩa Mã Hàng (SKU)
- SKU (Stock Keeping Unit): Mã số duy nhất dùng để nhận dạng từng loại sản phẩm trong kho. SKU thường bao gồm ký tự, số và có thể có dấu gạch ngang hoặc gạch dưới.
- Mã hàng trong tiếng Việt có thể tương đương với SKU hoặc mã sản phẩm, tùy vào quy trình công ty.
1.2 Đặc Điểm Thông Thường Của Mã Hàng
| Đặc điểm | Mô tả |
|---|---|
| Độ dài | Thường từ 5-15 ký tự, nhưng có thể dài hơn. |
| Định dạng | Chữ cái (in hoa, in thường), số, ký tự đặc biệt (‑, _, .). |
| Độ duy nhất | Mỗi mã hàng là duy nhất trong hệ thống. |
| Cấu trúc | Có thể chứa thông tin về nhóm sản phẩm, màu, kích thước, v.v. |
Hiểu rõ cấu trúc mã hàng sẽ giúp bạn thiết kế các công cụ lọc phù hợp.
Có thể bạn quan tâm: Lệnh Phép Nhân Trong Excel: Hướng Dẫn Toàn Diện Từ Cơ Bản Đến Nâng Cao
2. Các Phương Pháp Lọc Cơ Bản Trong Excel
2.1 Lọc Tự Động (AutoFilter)
Bước 1: Chọn bất kỳ ô nào trong bảng dữ liệu.
Bước 2: Vào Data → Filter (hoặc nhấn Ctrl + Shift + L).
Bước 3: Nhấp vào mũi tên dropdown ở cột chứa mã hàng, nhập hoặc chọn mã cần lọc.
Ưu điểm: Nhanh, dễ sử dụng, không cần công thức.
Nhược điểm: Không hỗ trợ lọc phức tạp (ví dụ: lọc theo nhiều tiêu chí đồng thời).
2.2 Lọc Văn Bản (Text Filters)
Khi mở dropdown của cột mã hàng, chọn Text Filters → Contains (hoặc Begins With, Ends With, Equals). Nhập phần mã hoặc mẫu cần lọc.
Ví dụ: Lọc tất cả các mã bắt đầu bằng “AB-”.
2.3 Lọc Nhiều Tiêu Chí (Custom Filter)
Bạn có thể kết hợp các điều kiện bằng AND hoặc OR. Ví dụ: Lọc các mã chứa “2026” AND kết thúc bằng “A”.
3. Advanced Filter – Lọc Nâng Cao
3.1 Khi Nào Nên Dùng Advanced Filter?
- Cần lọc theo nhiều tiêu chí phức tạp (vùng tiêu chí đa cột).
- Cần sao chép dữ liệu đã lọc sang vị trí mới.
- Cần lọc duy nhất (unique) hoặc trùng lặp (duplicate).
3.2 Cấu Trúc Của Advanced Filter
| Vùng Dữ Liệu | Vùng Tiêu Chí | Vị Trí Kết Quả |
|---|---|---|
| Bảng dữ liệu gốc (cột tiêu đề + dữ liệu) | Bảng tiêu chí (cùng tiêu đề, dưới là điều kiện) | Ô đầu tiên của vùng kết quả (có thể là cùng bảng hoặc bảng khác). |
3.3 Thực Hành
Giả sử dữ liệu nằm ở A1:D1000, tiêu đề ở hàng 1, cột Mã Hàng là B.
- Tạo Vùng Tiêu Chí:
- Ô
F1nhập “Mã Hàng”. Ô
F2nhập công thức="AB"(để lọc các mã bắt đầu bằng AB).Thực hiện Advanced Filter:
- Chọn Data → Advanced.
- List range:
$A$1:$D$1000. - Criteria range:
$F$1:$F$2. - Copy to:
$H$1(để sao chép kết quả). - Tick Unique records only nếu muốn loại bỏ trùng lặp.
3.4 Lọc Nhiều Tiêu Chí Với AND/OR
- AND: Đặt các tiêu chí trên các dòng khác nhau trong cùng một cột tiêu chí.
- OR: Đặt các tiêu chí trên các cột khác nhau (cùng dòng tiêu đề).
Ví dụ: Lọc mã hàng bắt đầu bằng “AB” HOẶC kết thúc bằng “Z”.
– F1: “Mã Hàng” | G1: “Mã Hàng”
– F2: ="AB" | G2: ="Z"
Khi chạy Advanced Filter, Excel sẽ trả về các dòng thỏa mãn một trong hai tiêu chí.
4. Sử Dụng Công Thức Để Lọc Mã Hàng
4.1 Hàm FILTER (Excel 365/2026)
=FILTER(A2:D1000, ISNUMBER(SEARCH("AB", B2:B1000)), "Không có dữ liệu")
SEARCHtrả về vị trí của chuỗi “AB” trong mỗi ô cột B.ISNUMBERchuyển kết quả thành TRUE/FALSE.FILTERtrả về toàn bộ các cột tương ứng với các dòng thỏa mãn.
4.2 Công Thức Mảng (Array Formula) – Cho Phiên Bản Cũ
Nếu bạn đang dùng Excel 2026 hoặc cũ hơn, có thể dùng công thức mảng:
=IFERROR(INDEX(A$2:A$1000, SMALL(IF(ISNUMBER(SEARCH("AB", B$2:B$1000)), ROW(A$2:A$1000)-ROW(A$2)+1), ROW(1:1))), "")
- Nhấn
Ctrl + Shift + Enterđể xác nhận công thức mảng. - Kéo công thức xuống để liệt kê các dòng thỏa mãn.
4.3 Hàm UNIQUE (Excel 365)
Để lọc ra danh sách mã hàng duy nhất:
=UNIQUE(FILTER(B2:B1000, B2:B1000<>""))
Kết hợp với SORT để sắp xếp:
=SORT(UNIQUE(FILTER(B2:B1000, B2:B1000<>"")))
5. Power Query – Lọc Mã Hàng Khi Dữ Liệu Lớn
5.1 Khi Nào Dùng Power Query?
- Dữ liệu có hàng nghìn, thậm chí hàng triệu.
- Cần tự động hoá quy trình lọc, làm sạch dữ liệu.
- Cần kết hợp nhiều nguồn dữ liệu (CSV, SQL, web,…) và lọc đồng thời.
5.2 Các Bước Cơ Bản
- Import Dữ Liệu:
Data → Get Data → From File → From Workbook(hoặc nguồn khác). - Mở Power Query Editor.
- Chọn Cột Mã Hàng, chọn Text Filters → Contains (hoặc Begins With, Ends With).
- Áp Dụng Filter, nhấn Close & Load để đưa dữ liệu đã lọc vào một sheet mới.
5.3 Lọc Nhiều Tiêu Chí

Có thể bạn quan tâm: Lọc Kết Quả Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao
Trong Power Query, bạn có thể thêm Conditional Column hoặc Custom Column với công thức M:
if Text.StartsWith(Mã Hàng, "AB") and Text.EndsWith(Mã Hàng, "Z") then true else false
Sau đó lọc cột mới này.
5.4 Lưu Trữ Truy Vấn (Query)
Bạn có thể lưu truy vấn dưới dạng Connection Only để tái sử dụng trong các báo cáo khác, hoặc đặt lịch tự động làm mới (Refresh) khi dữ liệu nguồn thay đổi.
6. VBA – Tự Động Hóa Lọc Mã Hàng
6.1 Khi Nào Dùng VBA?
- Cần thực hiện cùng một quy trình lọc nhiều lần với một nút bấm.
- Cần lọc dựa trên danh sách các mã hàng được lưu trong một sheet khác.
- Cần xuất dữ liệu đã lọc ra file CSV, email, hoặc tạo báo cáo PDF.
6.2 Mẫu Macro Cơ Bản
Sub LocMaHang() Dim ws As Worksheet, rng As Range Dim maHang As String Set ws = ThisWorkbook.Sheets("Data") maHang = InputBox("Nhập phần mã hàng cần lọc (ví dụ: AB)", "Lọc Mã Hàng") ws.AutoFilterMode = False Set rng = ws.Range("A1").CurrentRegion ' Áp dụng AutoFilter rng.AutoFilter Field:=2, Criteria1:=maHang, Operator:=xlAnd ' Sao chép dữ liệu đã lọc sang Sheet mới Dim wsResult As Worksheet Set wsResult = ThisWorkbook.Sheets.Add(After:=ws) wsResult.Name = "KQ_Loc_" & Format(Now, "yyyymmdd_hhmm") rng.SpecialCells(xlCellTypeVisible).Copy Destination:=wsResult.Range("A1") MsgBox "Đã lọc và sao chép dữ liệu tới " & wsResult.Name, vbInformation
End Sub
- Field:=2: cột thứ 2 (Mã Hàng).
Criteria1:=maHangcho phép nhập ký tự đại diện () hoặc (?) trong hộp thoại.
6.3 Lọc Nhiều Mã Từ Danh Sách
Giả sử danh sách các mã cần lọc nằm ở Sheet2!A2:A100.
Sub LocNhieuMa() Dim wsSrc As Worksheet, wsDst As Worksheet Dim rngData As Range, rngCrit As Range Dim arrCrit As Variant, i As Long Set wsSrc = ThisWorkbook.Sheets("Data") Set wsDst = ThisWorkbook.Sheets.Add(After:=wsSrc) wsDst.Name = "KQ_Loc_Nhieu" Set rngData = wsSrc.Range("A1").CurrentRegion Set rngCrit = ThisWorkbook.Sheets("Sheet2").Range("A2:A100") arrCrit = Application.Transpose(rngCrit.Value) ' Xóa bộ lọc cũ wsSrc.AutoFilterMode = False ' Lặp qua từng mã và sao chép For i = LBound(arrCrit) To UBound(arrCrit) If Len(arrCrit(i)) > 0 Then rngData.AutoFilter Field:=2, Criteria1:=arrCrit(i) rngData.SpecialCells(xlCellTypeVisible).Copy _ Destination:=wsDst.Cells(wsDst.Rows.Count, 1).End(xlUp).Offset(1, 0) End If Next i wsSrc.AutoFilterMode = False MsgBox "Hoàn thành lọc " & UBound(arrCrit) - LBound(arrCrit) + 1 & " mã.", vbInformation
End Sub
6.4 Ghi Chú Về Hiệu Suất
- Khi dữ liệu > 100.000 dòng, nên tắt ScreenUpdating và Calculation trong VBA để tăng tốc:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'...code...
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
7. Kỹ Thuật Tối Ưu Khi Lọc Mã Hàng
7.1 Định Dạng Dữ Liệu
- Đảm bảo cột mã hàng được định dạng Text để tránh mất số 0 đầu hoặc chuyển đổi không mong muốn.
- Sử dụng Trim để loại bỏ khoảng trắng thừa:
=TRIM(A2).
7.2 Loại Bỏ Dòng Trùng Lặp
- Data → Remove Duplicates (chọn cột mã hàng).
- Hoặc dùng công thức
=UNIQUE()(Excel 365).
7.3 Kiểm Tra Tính Đúng Đắn
- Dùng Conditional Formatting để tô màu các mã không khớp định dạng (ví dụ: không phải chữ in hoa).
- Sử dụng Data Validation để hạn chế nhập sai mã khi nhập dữ liệu mới.
7.4 Tạo Danh Mục Thông Minh (Dynamic Named Ranges)
=OFFSET(Sheet1!$B$2,0,0,COUNTA(Sheet1!$B:$B)-1,1)
Tên dải này tự động mở rộng khi thêm dòng mới, giúp công thức lọc luôn cập nhật.
8. Lọc Mã Hàng Trong Các Tình Huống Thực Tế
8.1 Kiểm Kê Kho Hàng
- Mục tiêu: Xác định những mã hàng còn tồn kho dưới mức tối thiểu.
- Cách thực hiện:
- Tạo cột “Số lượng tồn” và “Mức tối thiểu”.
- Dùng Conditional Formatting để tô màu các dòng
Số lượng tồn < Mức tối thiểu. - Áp dụng AutoFilter để chỉ hiển thị các dòng được tô màu.
8.2 Báo Cáo Bán Hàng Hàng Ngày
- Mục tiêu: Lấy danh sách các mã hàng đã bán trong ngày hôm nay.
- Công thức:
excel =FILTER(A2:E1000, (B2:B1000=TODAY())(C2:C1000<>""))
(Giả sử cột B là ngày bán, cột C là mã hàng.)
8.3 Đối Chiếu Danh Mục Sản Phẩm Với Đơn Đặt Hàng
- Mục tiêu: Kiểm tra xem có đơn đặt hàng nào chứa mã không tồn tại trong danh mục không.
- Công cụ: VLOOKUP hoặc XLOOKUP kết hợp với Conditional Formatting.
excel =ISERROR(XLOOKUP(D2, DanhMuc!$A$2:$A$5000, DanhMuc!$A$2:$A$5000))
8.4 Tự Động Gửi Email Khi Mã Hàng Cụ Thể Được Đặt Hàng
- Với VBA: Khi lọc được mã “SPECIAL01”, macro sẽ tạo email Outlook và đính kèm báo cáo.
If Not Intersect(Target, Range("B:B")) Is Nothing Then If Target.Value = "SPECIAL01" Then Call GuiEmailBaoCao(Target.Row) End If
End If
9. Những Lỗi Thường Gặp Khi Lọc Mã Hàng Và Cách Khắc Phục
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| Không có kết quả khi lọc | Dữ liệu không phải dạng Text, có khoảng trắng thừa, hoặc ký tự đặc biệt. | Dùng TRIM, CLEAN, chuyển cột sang Text. |
| Lọc sai “Contains” vs “Begins With” | Nhập sai ký tự đại diện (, ?). | Kiểm tra cú pháp, nhớ rằng đại diện cho bất kỳ chuỗi ký tự nào. |
| Lọc mất dữ liệu vì có ô trống | AutoFilter bỏ qua ô trống khi sử dụng <>. | Thêm điều kiện OR để bao gồm ô trống nếu cần. |
| Query Power Query không cập nhật | Không bật “Refresh on open” hoặc không refresh thủ công. | Vào Data → Queries & Connections → Refresh hoặc đặt lịch tự động. |
| Macro chạy chậm | Dữ liệu quá lớn, ScreenUpdating bật, tính toán tự động. | Tắt ScreenUpdating và Calculation trong macro. |
| Lỗi “Application-defined or object-defined error” khi sao chép dữ liệu đã lọc | Không có ô nào được lọc (kết quả rỗng). | Kiểm tra rng.SpecialCells(xlCellTypeVisible).Count > 1 trước khi sao chép. |
10. Tích Hợp Với Power BI – Lọc Mã Hàng Trên Đám Mây
Nếu doanh nghiệp của bạn sử dụng Power BI để visualise dữ liệu, việc lọc mã hàng trong Excel vẫn là bước chuẩn bị quan trọng.
- Chuẩn bị dữ liệu trong Excel: Đảm bảo các cột có tiêu đề rõ ràng, dữ liệu đã được làm sạch (trim, remove duplicates).
- Import vào Power BI:
Get Data → Excel. - Sử dụng Power Query trong Power BI để áp dụng các filter tương tự như trong Excel (Text.Contains, Text.StartsWith).
- Tạo slicer (bộ lọc) cho mã hàng trong báo cáo để người dùng cuối có thể tự do chọn mã cần xem.
Nhờ công cụ Power BI, bạn có thể mở rộng khả năng phân tích từ Excel sang Dashboard thời gian thực, đồng thời vẫn giữ được quy trình lọc mã hàng đã được chuẩn hoá.
11. Tổng Kết
Việc lọc mã hàng trong Excel không chỉ là một thao tác đơn giản mà còn là nền tảng cho các quy trình phân tích, báo cáo và quyết định kinh doanh. Từ các công cụ cơ bản như AutoFilter, Advanced Filter, tới các công thức mạnh mẽ (FILTER, UNIQUE), Power Query, VBA và thậm chí tích hợp Power BI, bạn có thể lựa chọn phương pháp phù hợp nhất với nhu cầu và quy mô dữ liệu.
Các điểm cần nhớ:
- Chuẩn hoá dữ liệu (định dạng Text, loại bỏ khoảng trắng) trước khi lọc.
- Sử dụng công cụ phù hợp: AutoFilter cho nhanh, Advanced Filter cho đa tiêu chí, Power Query cho dữ liệu lớn, VBA cho tự động hoá, và Power BI cho visualisation.
- Kiểm tra và xác nhận kết quả bằng cách so sánh số dòng, dùng Conditional Formatting hoặc công thức
COUNTIF. - Tối ưu hoá hiệu suất bằng cách tắt tính toán tự động, sử dụng Named Ranges động, và tránh lọc trên toàn bộ sheet không cần thiết.
Hy vọng bài viết đã cung cấp cho bạn một hướng dẫn chi tiết, đầy đủ và thực tiễn để làm chủ việc lọc mã hàng trong Excel. Hãy áp dụng ngay vào công việc của mình, và đừng ngần ngại thử nghiệm các kỹ thuật nâng cao để nâng cao hiệu quả làm việc và độ chính xác của dữ liệu. 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ẻ.
