Skip to main content

Hàm FILTER nâng cao trong Excel: nhiều điều kiện, tránh lỗi

8 phút đọc

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.

MaDonNgayChiNhanhTrangThaiDoanhThu
DH0101/10/2026Hà NộiĐã giao1200000
DH0202/10/2026Đà NẵngĐã giao800000
DH0303/10/2026Hà NộiChờ giao1500000
DH0404/10/2026TP.HCMĐã giao2000000
DH0505/10/2026Hà NộiĐã giao600000
DH0601/11/2026Hà NộiĐã giao1800000

Để 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.

Sơ đồ phần giao cho điều kiện AND và phần hợp cho điều kiện OR khi chọn dòng dữ liệu
AND giữ phần thỏa đồng thời; OR giữ phần thỏa ít nhất một điều kiện.
AND giữ phần thỏa đồng thời; OR giữ phần thỏa ít nhất một điều kiện.

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.

Minh họa vùng kết quả bảng tính bị một ô có dữ liệu chặn và mở rộng được sau khi chuyển vật cản
Chừa vùng trống cho kết quả mở rộng khi số dòng phù hợp tăng lên.
Chừa vùng trống cho kết quả mở rộng khi số dòng phù hợp tăng lên.

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ượngKiểm tra trướcCách xử lý
#SPILL!Ô có dữ liệu, ô gộp hoặc công thức nằm trong TableDọ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 6Că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 đạtChưa khai báo tham số if_emptyThê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ảnSử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ú

Đào Ngọc Tú

Freelancer Power BI

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.

Đọc tiếp

Quay lại tất cả bài viết
Hàm FILTER nâng cao trong Excel: lọc nhiều điều kiện | SenData