Hàm FILTER nâng cao trong Excel giúp bạn lấy danh sách thỏa nhiều điều kiện bằng cách kết hợp phép nhân cho AND và phép cộng cho OR. Muốn kết quả đúng, bạn cần giữ vùng dữ liệu và vùng điều kiện cùng số dòng, đồng thời chừa đủ ô trống cho kết quả tràn. Bài này dùng một bảng đơn hàng giả lập để bạn kiểm từng công thức trước khi áp dụng vào báo cáo thật.
Chuẩn bị bảng đơn hàng và kiểm tra phiên bản Excel
Ví dụ phù hợp với Excel Microsoft 365, Excel 2021 và Excel 2024 có FILTER. Nếu máy báo không nhận hàm, hãy kiểm tra phiên bản trước khi sửa công thức. FILTER ở đây là hàm trả về danh sách mới; thao tác Data → Filter chỉ ẩn các dòng không đạt ngay trên bảng nguồn.
Tạo sheet mới, nhập tiêu đề vào A1:E1 và sáu dòng dưới đây vào A2:E7. Đây là dữ liệu minh họa, không phải số liệu khách hàng. Cột doanh thu nhập số nguyên, chưa gõ dấu phân cách hàng nghìn.
| MaDon | Ngay | ChiNhanh | TrangThai | DoanhThu |
|---|---|---|---|---|
| DH01 | 01/10/2026 | Hà Nội | Đã giao | 1200000 |
| DH02 | 02/10/2026 | Đà Nẵng | Đã giao | 800000 |
| DH03 | 03/10/2026 | Hà Nội | Chờ giao | 1500000 |
| DH04 | 04/10/2026 | TP.HCM | Đã giao | 2000000 |
| DH05 | 05/10/2026 | Hà Nội | Đã giao | 600000 |
| DH06 | 01/11/2026 | Hà Nội | Đã giao | 1800000 |
Để tránh Excel hiểu nhầm ngày theo thiết lập vùng, bạn có thể nhập B2 bằng =DATE(2026,10,1), rồi nhập tương tự cho các dòng còn lại và định dạng dd/mm/yyyy. Đổi cách hiển thị ngày không tự biến chuỗi văn bản thành ngày thật. Tài liệu DATE của Microsoft giải thích cách tạo giá trị ngày từ năm, tháng và ngày.
Đặt công thức kết quả tại G2, viết tiêu đề riêng tại G1:K1. Mọi công thức dưới đây dùng dấu phẩy ngăn đối số; máy dùng dấu chấm phẩy thì thay dấu phân cách tương ứng. Chỉ nhập một công thức mỗi lần, xóa công thức cũ ở G2 trước khi thử ví dụ tiếp theo.
Hiểu vùng điều kiện trước khi ghép công thức
=FILTER(A2:E7,C2:C7="Hà Nội","Không có đơn phù hợp")
Vùng A2:E7 là dữ liệu cần lấy. Biểu thức C2:C7="Hà Nội" tạo sáu giá trị đúng hoặc sai, tương ứng sáu đơn. Bạn sẽ nhận DH01, DH03, DH05 và DH06; thứ tự vẫn theo nguồn.
Tham số cuối là thông báo khi không có dòng phù hợp. Theo hướng dẫn FILTER chính thức, vùng điều kiện phải khớp chiều tương ứng của vùng dữ liệu. Trước khi ghép nhiều điều kiện, hãy thử một điều kiện và đối chiếu mã đơn bằng mắt.
Nếu bạn mới làm quen công thức trả nhiều ô, bài các hàm Excel nâng cao giúp đặt FILTER trong nhóm công cụ dò tìm và mảng động. Phần dưới tập trung vào cách xây điều kiện cho một danh sách nghiệp vụ.
Lọc nhiều điều kiện AND, OR và kết hợp hai kiểu
AND: phải đúng đồng thời mọi điều kiện
Cần đơn Hà Nội, đã giao và doanh thu từ một triệu đồng trở lên? Mỗi yêu cầu nằm trong một cặp ngoặc, sau đó nhân các biểu thức với nhau:
=FILTER(A2:E7,(C2:C7="Hà Nội")*(D2:D7="Đã giao")*(E2:E7>=1000000),"Không có đơn phù hợp")
Kết quả là DH01 và DH06. DH03 đạt doanh thu nhưng chưa giao; DH05 đã giao nhưng chưa đạt ngưỡng. Khi kiểm công thức, hai dòng gần đạt này hữu ích hơn việc chỉ nhìn dòng đã được chọn.
OR: chỉ cần đúng một trong các điều kiện
Cần lấy đơn ở Hà Nội hoặc Đà Nẵng, bất kể trạng thái và doanh thu, bạn cộng hai biểu thức:
=FILTER(A2:E7,((C2:C7="Hà Nội")+(C2:C7="Đà Nẵng"))>0,"Không có đơn phù hợp")
Kết quả gồm DH01, DH02, DH03, DH05 và DH06. Phần >0 biểu đạt rõ rằng chỉ cần có ít nhất một điều kiện đúng. FILTER chọn dòng theo điều kiện, không nhân đôi dòng nếu nhiều điều kiện OR cùng đúng.

Ghép AND với OR: viết câu nghiệp vụ trước
Yêu cầu tiếp theo là “đã giao và thuộc Hà Nội hoặc Đà Nẵng”. Hãy hiểu thành “đã giao” AND “thuộc một trong hai chi nhánh”, rồi đặt ngoặc quanh toàn bộ nhóm OR:
=FILTER(A2:E7,(D2:D7="Đã giao")*(((C2:C7="Hà Nội")+(C2:C7="Đà Nẵng"))>0),"Không có đơn phù hợp")
Bạn phải nhận DH01, DH02, DH05 và DH06. Nếu có DH03, nhóm điều kiện trạng thái đang bị ghép sai. Không nên sửa ngoặc theo cảm giác: tách nhóm OR ra kiểm trước, sau đó mới nhân với trạng thái.
Lọc theo khoảng ngày và ô lựa chọn
Bây giờ lấy đơn Hà Nội đã giao trong tháng 10. Hãy dùng khoảng từ ngày đầu tháng đến trước ngày đầu tháng sau, thay vì so sánh với chuỗi “10/2026”. Cách này cũng bao gồm giao dịch có giờ trong ngày cuối tháng.
=FILTER(A2:E7,(C2:C7="Hà Nội")*(D2:D7="Đã giao")*(B2:B7>=DATE(2026,10,1))*(B2:B7<DATE(2026,11,1)),"Không có đơn phù hợp")
Kết quả là DH01 và DH05. DH06 đáp ứng chi nhánh và trạng thái nhưng thuộc tháng 11 nên bị loại. Nếu ngày nguồn là văn bản, hãy xử lý cột đó trước; thêm nhiều điều kiện không chữa được kiểu dữ liệu sai.
Để người dùng đổi chi nhánh, nhập “Hà Nội” tại M2 và ngưỡng doanh thu 1000000 tại M3. Công thức sau thay các giá trị cố định bằng tham chiếu ô:
=FILTER(A2:E7,(C2:C7=$M$2)*(E2:E7>=$M$3),"Không có đơn phù hợp")
Với hai giá trị trên, kết quả là DH01, DH03 và DH06. Quy ước trong ví dụ là M2 và M3 bắt buộc có giá trị; ô trống không mang nghĩa “chọn tất cả”. Bạn nên ghi quy ước này ngay cạnh vùng nhập để người dùng không diễn giải sai.
Cho nguồn tự mở rộng, giữ vùng kết quả thông thoáng
Vùng A2:E7 thuận tiện để học nhưng không tự bao gồm dòng thứ tám. Khi dùng lâu dài, chọn A1:E7, nhấn Ctrl+T và xác nhận bảng có tiêu đề. Trong Table Design, đặt tên bảng là DonHang, giữ nguyên năm tên cột như ví dụ.
=FILTER(DonHang,(DonHang[ChiNhanh]=$M$2)*(DonHang[DoanhThu]>=$M$3),"Không có đơn phù hợp")
Giữ công thức tại G2, ngoài Table nguồn. Khi thêm đơn vào cuối Table, tham chiếu theo tên bảng bao gồm dữ liệu mới. Microsoft hướng dẫn về vùng tràn cũng phân biệt rõ Table chứa nguồn với vùng lưới nhận kết quả mảng.

Bạn không cần kéo công thức xuống từng dòng. Muốn sửa, chọn ô đầu G2; những ô còn lại thuộc vùng kết quả. Chừa khoảng trống cả bên dưới lẫn bên phải, tránh bố trí một báo cáo khác sát vùng này.
Kiểm tra lỗi theo thứ tự thay vì bọc IFERROR ngay
| Hiện tượng | Kiểm tra trước | Cách xử lý |
|---|---|---|
| #SPILL! | Ô có dữ liệu, ô gộp hoặc công thức nằm trong Table | Dọn vùng kết quả, bỏ gộp ô, chuyển công thức ra ngoài Table |
| #VALUE! | A2:E7 nhưng điều kiện chỉ đến dòng 6 | Căn vùng cùng chiều, kiểm lỗi trong các ô điều kiện |
| #CALC! khi không có dòng đạt | Chưa khai báo tham số if_empty | Thêm thông báo không có đơn phù hợp |
| #NAME? | Tên hàm, tên bảng hoặc phiên bản | Sửa tên, kiểm phiên bản hỗ trợ FILTER |
Với #SPILL!, bạn có thể chọn cảnh báo lỗi để tìm ô đang chặn, theo hướng dẫn xử lý của Microsoft. Bọc mọi thứ trong IFERROR ngay từ đầu dễ biến lỗi cấu trúc thành một dòng thông báo tưởng như hợp lệ.
Trước khi bàn giao, thử bốn tình huống: một dòng đạt, nhiều dòng đạt, không dòng nào đạt và thêm dòng mới vào Table. Kiểm thêm khoảng trắng ở tên chi nhánh, số tiền lưu dạng chữ và dòng trùng mã đơn. FILTER không tự loại bản ghi trùng hoặc chuẩn hóa dữ liệu.
Nếu nguồn đến từ nhiều file theo tháng và phải làm sạch lặp lại, bạn có thể chuẩn bị dữ liệu bằng Power Query để gộp các file Excel, sau đó dùng FILTER cho phần lựa chọn danh sách trên sheet.
Câu hỏi thường gặp
FILTER có giống Advanced Filter không?
Không. FILTER là công thức trả về danh sách và tính lại theo nguồn, điều kiện. Advanced Filter là công cụ trên tab Data sử dụng vùng tiêu chí. Bạn cần xác định mình đang dùng cách nào trước khi làm theo hướng dẫn.
Có dùng AND và OR trực tiếp trong include được không?
Với bài toán chọn từng dòng này, hãy dùng phép nhân và phép cộng như ví dụ. AND hoặc OR thông thường có thể tổng hợp cả vùng thành một kết quả logic, thay vì tạo điều kiện riêng cho từng đơn.
Công thức Google Sheets có chép sang Excel được không?
Không nên chép nguyên. FILTER của Google Sheets cho phép nhiều đối số điều kiện; FILTER của Excel dùng một đối số include và đối số if_empty. Hãy ghép điều kiện vào include theo đúng cú pháp Excel.
Tại sao lọc xong ngày lại thành số?
Vùng kết quả có thể chưa được định dạng ngày. Chọn cột ngày trong vùng nhận và đặt dd/mm/yyyy. Nếu giá trị nguồn đã là ngày thật, việc này thay đổi cách hiển thị mà không cần sửa điều kiện lọc.
Khi danh sách lọc đã phát triển thành báo cáo nhiều nguồn, nhiều kỳ và cần người hỗ trợ xây dựng Power BI, bạn có thể tham khảo chi phí làm báo cáo Power BI trên SenData và chuẩn bị một file mẫu đã ẩn thông tin nhạy cảm để trao đổi phạm vi.
Sẵn sàng xây dựng dashboard Power BI?
Kết nối với freelancer Power BI phù hợp, xem báo cáo nhúng ngay trên trình duyệt và tải file .pbix về sau khi thanh toán.
Đào Ngọc Tú
Cộng tác viên chuyên gia tại SenData. Chia sẻ kiến thức về phát triển Power BI, trực quan hóa dữ liệu và best practice business intelligence.

