Hàm FILTER trong Excel lọc một vùng dữ liệu theo điều kiện bạn đặt và trả về ngay các dòng thoả điều kiện, tự tràn (spill) xuống các ô bên dưới. Khác bộ lọc AutoFilter, kết quả của FILTER là công thức nên tự cập nhật khi dữ liệu gốc thay đổi. Hàm có trên Excel cho Microsoft 365 và Excel 2021.
Ví dụ nhanh: =FILTER(A2:C7;B2:B7="KD") → 3 dòng của phòng KD: Lan, Hoa, Phương
Nguồn: tài liệu hàm FILTER và hàm SORT của Microsoft, đối chiếu ngày 07/10/2026. Áp dụng cho Excel cho Microsoft 365, Excel 2021 trở lên, Excel trên web (Excel 2019 trở xuống không có FILTER).

Cú pháp hàm FILTER
FILTER có ba đối số, đối số cuối không bắt buộc. Kết quả là một mảng nên cần chừa đủ ô trống bên dưới và bên phải ô công thức.
=FILTER(array; include; [if_empty])
| Đối số | Bắt buộc? | Ý nghĩa |
|---|---|---|
array |
Có | Vùng dữ liệu cần lọc, ví dụ A2:C7. |
include |
Có | Điều kiện trả về TRUE/FALSE cho từng dòng, cùng số dòng với array, ví dụ B2:B7="KD". |
if_empty |
Không | Giá trị hiện khi không dòng nào thoả điều kiện, ví dụ "Không có"; bỏ trống thì Excel báo #CALC!. |
Ví dụ 1: Lọc nhân viên theo phòng
Bảng nhân viên ở A1:C7. Công thức ở E2 trả về đủ ba cột của các dòng thuộc phòng KD.
| A | B | C | |
|---|---|---|---|
| 1 | Tên | Phòng | Doanh số (triệu) |
| 2 | Lan | KD | 120 |
| 3 | Minh | KT | 80 |
| 4 | Hoa | KD | 95 |
| 5 | Tuấn | HC | 60 |
| 6 | Phương | KD | 150 |
| 7 | Quang | KT | 110 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| E2 | =FILTER(A2:C7;B2:B7="KD") |
Lan | Tràn ra E2:G4: Lan | KD | 120; Hoa | KD | 95; Phương | KD | 150 |
Ví dụ 2: Lọc theo nhiều điều kiện cùng lúc (VÀ)
Nhân hai điều kiện với nhau bằng dấu *: dòng chỉ được giữ khi cả hai điều kiện đều đúng.
| A | B | C | |
|---|---|---|---|
| 1 | Tên | Phòng | Doanh số (triệu) |
| 2 | Lan | KD | 120 |
| 3 | Minh | KT | 80 |
| 4 | Hoa | KD | 95 |
| 5 | Tuấn | HC | 60 |
| 6 | Phương | KD | 150 |
| 7 | Quang | KT | 110 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| E2 | =FILTER(A2:A7;(B2:B7="KD")*(C2:C7>=100)) |
Lan | Tràn ra E2:E3: Lan, Phương (phòng KD và doanh số ≥ 100) |

Ví dụ 3: Lọc theo một trong hai điều kiện (HOẶC)
Cộng hai điều kiện bằng dấu +: dòng được giữ khi ít nhất một điều kiện đúng.
| A | B | C | |
|---|---|---|---|
| 1 | Tên | Phòng | Doanh số (triệu) |
| 2 | Lan | KD | 120 |
| 3 | Minh | KT | 80 |
| 4 | Hoa | KD | 95 |
| 5 | Tuấn | HC | 60 |
| 6 | Phương | KD | 150 |
| 7 | Quang | KT | 110 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| E2 | =FILTER(A2:A7;(B2:B7="KT")+(C2:C7>=150)) |
Minh | Tràn ra E2:E4: Minh, Phương, Quang (phòng KT hoặc doanh số ≥ 150) |
Ví dụ 4: Báo «Không có» khi không có dòng nào
Không có ai thuộc phòng MKT nên FILTER trả về giá trị của đối số if_empty thay cho lỗi #CALC!.
| A | B | C | |
|---|---|---|---|
| 1 | Tên | Phòng | Doanh số (triệu) |
| 2 | Lan | KD | 120 |
| 3 | Minh | KT | 80 |
| 4 | Hoa | KD | 95 |
| 5 | Tuấn | HC | 60 |
| 6 | Phương | KD | 150 |
| 7 | Quang | KT | 110 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| E2 | =FILTER(A2:A7;B2:B7="MKT";"Không có") |
Không có | Không dòng nào thoả điều kiện |
Ví dụ 5: Lọc rồi sắp xếp doanh số giảm dần
Lồng FILTER trong SORT: lọc phòng KD rồi sắp xếp theo cột thứ 3 (doanh số), -1 là giảm dần.
| A | B | C | |
|---|---|---|---|
| 1 | Tên | Phòng | Doanh số (triệu) |
| 2 | Lan | KD | 120 |
| 3 | Minh | KT | 80 |
| 4 | Hoa | KD | 95 |
| 5 | Tuấn | HC | 60 |
| 6 | Phương | KD | 150 |
| 7 | Quang | KT | 110 |
| Ô | Công thức | Kết quả | Giải thích |
|---|---|---|---|
| E2 | =SORT(FILTER(A2:C7;B2:B7="KD");3;-1) |
Phương | Tràn ra E2:G4: Phương 150; Lan 120; Hoa 95 |
Lỗi riêng của hàm FILTER và cách sửa
| Lỗi | Nguyên nhân | Cách sửa |
|---|---|---|
#CALC! |
Không dòng nào thoả điều kiện và không có đối số if_empty. | Thêm đối số thứ ba, ví dụ "Không có". |
#SPILL! |
Vùng kết quả tràn xuống bị chặn bởi ô đã có dữ liệu hoặc ô gộp. | Xoá dữ liệu hoặc bỏ gộp ô trong vùng bên dưới/bên phải công thức. |
#VALUE! |
Vùng include không cùng số dòng với array, ví dụ A2:C7 nhưng điều kiện là B2:B8. | Cho hai vùng cùng kích thước. |
#NAME? |
Mở file trên Excel 2019 trở xuống, phiên bản chưa có hàm FILTER. | Dùng Excel cho Microsoft 365/Excel 2021, hoặc dùng AutoFilter/Advanced Filter. |
Kết quả không đổi khi thêm dòng |
Vùng tham chiếu cố định A2:C7 không bao gồm dòng mới. | Đổi dữ liệu thành Bảng (Ctrl+T) và tham chiếu theo tên cột. |
FILTER khác bộ lọc AutoFilter và VLOOKUP thế nào?
| Tiêu chí | Hàm FILTER | AutoFilter (Dữ liệu › Lọc) | VLOOKUP |
|---|---|---|---|
| Kết quả | Mảng nhiều dòng ở vùng khác | Ẩn dòng ngay trên bảng gốc | Một giá trị |
| Tự cập nhật | Có | Phải lọc lại | Có |
| Nhiều kết quả trùng điều kiện | Lấy hết | Hiện hết | Chỉ dòng đầu tiên |
Khi chỉ cần một giá trị theo mã, dùng hàm VLOOKUP; khi cần mọi dòng khớp điều kiện, dùng FILTER. Danh sách đầy đủ ở bài các hàm trong Excel.
Tải file Excel mẫu
File mẫu gồm 5 trang tính, mỗi trang là một ví dụ ở trên với công thức để sẵn; Excel tự tính lại khi mở. Tải file Excel mẫu (.xlsx).
Câu hỏi thường gặp
Excel 2016, 2019 có hàm FILTER không?
Không. Theo tài liệu Microsoft, FILTER có trên Excel cho Microsoft 365, Excel 2021 trở lên và Excel trên web. Bản cũ báo lỗi #NAME?.
Làm sao lọc theo chữ chứa một từ, ví dụ tên có chữ «an»?
Kết hợp ISNUMBER và SEARCH: =FILTER(A2:A7;ISNUMBER(SEARCH("an";A2:A7))). SEARCH không phân biệt hoa thường.
FILTER có lọc được dữ liệu ở sheet khác không?
Có. Ghi tên sheet trước vùng, ví dụ =FILTER(Sheet2!A2:C7;Sheet2!B2:B7="KD").
Xem thêm các thủ thuật khác tại ITGO (thủ thuật máy tính & Excel).



