Kiến Thức Excel Hàm lọc dữ liệu có điều kiện trong Excel: Hướng dẫn chi...

Hàm lọc dữ liệu có điều kiện trong Excel: Hướng dẫn chi tiết & kèm file mẫu

Để lọc điêu kiện có điều kiện trong Excel ta có thể sử dụng hàm FILTER (với các phiên bản Excel 365/2019 trở lên) hoặc sử dụng tính năng Advanced Filter. Dưới đây là hướng dẫn chi tiết:

1. Sử dụng hàm FILTER để lọc dữ liệu theo điều kiện

Hàm FILTER cho phép lọc hàng theo điều kiện và trả về kết quả động. Hàm này rất phù hợp khi ta muốn lọc theo nhiều điều kiện, lọc theo khoảng ngày/số, lọc chứa từ khóa, lọc theo danh sách, top N theo chỉ tiêu, và kết quả tự cập nhật khi dữ liệu nguồn thay đổi.

Cú pháp hàm FILTER như sau:

=FILTER(array, include, [if_empty])

Trong đó các tham số:

  • array: là vùng/bảng cần lọc (ví dụ: SalesTable).
  • include: là mảng logic cùng số hàng với array (ví dụ: SalesTable[Region]="Miền Bắc").
  • if_empty (tùy chọn): là nội dung trả về nếu không có kết quả (tránh lỗi #CALC!)

Khi sử dụng hàm Filter ta nên để dữ liệu đặt ở Table (Ctrl+T) để dùng structured references (ví dụ: SalesTable[Region]), giúp công thức ngắn gọn.

Khi sử dụng hàm FILTER ta có thể sử dụng phép tính toán tử để kết hợp nhiều điều kiện như sau:

  • Đáp ứng nhiều điều cùng lúc (AND): ta sẽ sử dụng phép nhân * – ví dụ: (A="x")*(B>0)
  • Đáp ứng 1 trong nhiều điều kiện (OR): ta sử dụng phép cộng + – ví dụ (A="x")+(A="y")
  • Phủ định (NOT): ta sử dụng 2 dấu gạch ngang -- ví dụ --(A<>"x") hoặc NOT(A="x")

Để hình dung cụ thể cách sử dụng hàm FILTER để lọc theo điều kiện, ta sẽ đi đến một bảng dữ liệu về số lượng đơn đặt hàng sản phẩm như sau:

bảng dữ liệu để sử dụng hàm FILTER

eyeXem bảng dữ liệu trực tiếp để thực hành lọc theo điều kiện với hàm FILTER

Trong bảng dữ liệu trên ta tạo sheet Data với dữ liệu nằm trong Table SalesTable với các cột: OrderID, Date, Region, Salesperson, Product, Category, Qty, UnitPrice, Revenue, Status, Paid?, Channel. và dữ liệu nằm từ hàng 2 đến hàng 1000.

Sau đây ta sẽ sử dụng hàm FILTER để thực hiện lọc theo từng điều kiện và áp dụng vào ví dụ này:

1.1. Lọc theo 1 điều kiện với hàm FILTER

Với bảng đơn hàng trên, ta muốn lọc tất cả dữ liệu điều kiện là Region là “Miền Bắc” thì ta sẽ sử dụng hàm công thức FILTER như sau:

=FILTER(SalesTable, SalesTable[Region]="Miền Bắc", "Không có dữ liệu")

Trong hàm trên, Excel sẽ lọc dữ liệu từu bảng SalesTable và xét điều kiện là giá trị tại cột Region là “Miền Bắc” nếu không tìm thấy thì trả về “Không có dữ liệu“. Kết quả hàm lọc sẽ trả về như sau:

hàm FILTER lọc giá trị 1 điều kiện

Trong trường hợp ta không muốn sử dụng dữ liệu ở dạng Table thì có thể sử dụng công thức tương đương sau:

=FILTER(Data!A2:L1000, Data!C2:C1000="Miền Bắc", "Không có dữ liệu")

1.2. Lọc nhiều điều kiện (AND) với FILTER

Với trường hợp muốn lọc dữ liệu thỏa mãn nhiều điều kiện đồng thời, tức là dữ liệu phải thỏa mãn 2 điều kiện cùng lúc trở lên. Ví dụ giờ ta muốn lọc dữ liệu của tất cả thỏa mãn Region là “Miền Bắc” và Category là “Điện tử” thì lúc này ta sẽ sử dụng phép nhân làm phép toán tử để kết hợp các điều kiện với nhau:

(SalesTable[Region]="Miền Bắc")*(SalesTable[Category]="Điện tử")

Lúc này công thức hàm FILTER hoàn chỉnh sẽ là:

=FILTER(
SalesTable,
(SalesTable[Region]="Miền Bắc")*(SalesTable[Category]="Điện tử"),
"Không có dữ liệu"
)

Kết quả, hàm trên sẽ lọc lấy tất cả dữ liệu ở bảng SalesTable thỏa mãn hai điều kiện và cột Region có giá trị là “Miền Bắc” và Category là “Điện tử“, kết quả hàm sẽ trả về như sau:

hàm FILTER lọc giá trị nhiều điều kiện AND

Trong trường hợp không sử dụng dữ liệu ở dạng Table ta có thể sử dụng công thức tương đương:

=FILTER(
Data!A2:L1000,
(Data!C2:C1000="Miền Bắc")*(Data!F2:F1000="Điện tử"),
"Không có dữ liệu"
)

1.3. Lọc nhiều điều kiện (OR) với FILTER

Với trường hợp muốn lọc dữ liệu thuộc một tệp gồm nhiều tiêu chí, tức là dữ liệu chỉ cần thỏa mãn 1 trong các điều kiện thì đều được lấy. Ví dụ, ta muốn lọc tất cả dữ liệu của “Thực phẩm” và “Gia dụng” ở cột Category. Lúc này ta sẽ sử dụng phép cộng + để kết hợp các điều kiện ở dạng OR để xét điều kiện:

(SalesTable[Category]="Thực phẩm") + (SalesTable[Category]="Gia dụng"

Lúc này, công thức hàm FILTER hoàn chỉnh để lọc dữ liệu như sau:

=FILTER(
SalesTable,
(SalesTable[Category]="Thực phẩm") + (SalesTable[Category]="Gia dụng"),
"Không có dữ liệu"
)

Trong hàm trên, Excel sẽ lọc tất cả dữ liệu trong bảng SaleTable và trả về kết quả thỏa mãn giá trị ở cột CategoryThực phẩm hoặc Gia dụng, kết quả hàm sẽ trả về như sau:

hàm FILTER lọc giá trị nhiều điều kiện OR

Nếu không sử dụng dữ liệu ở dạng Table ta có thể sử dụng công thức tương đương sau:

=FILTER(
Data!A2:L1000,
(Data!F2:F1000="Thực phẩm") + (Data!F2:F1000="Gia dụng"),
"Không có dữ liệu"
)

1.4. Lọc dữ liệu có chứa từ khóa với FILTER

Trường hợp muốn lọc dữ liệu theo giá trị trong một cột có chứa từ khóa. Ví dụ như ta muốn lọc tất cả dữ liệu ở cột Product có chứa từ “sữa” thì lúc này, mảng điều kiện ta sẽ cần phải kết hợp với hàm ISNUMBER và hàm SEARCH (tìm không phân biệt chữ hoa, nếu phân biệt thì sử dụng hàm FIND để thay thế). Công thức hàm FILTER như sau:

=FILTER(
SalesTable,
ISNUMBER(SEARCH("sữa", SalesTable[Product])),
"Không có dữ liệu"
)

Khi chạy công thức trên, Excel sẽ lọc tất cả dữ liệu ở bảng SalesTable với điều kiện là ở cột Product có chứa từ khóa “sữa“, kết quả hàm trả về như sau:

hàm FILTER lọc giá trị theo từ khóa

Nếu không để dữ liệu ở dạng Table, ta có thể sử dụng công thức tương đương sau:

=FILTER(
Data!A2:L1000,
ISNUMBER(SEARCH("sữa", Data!E2:E1000)),
"Không có dữ liệu"
)

1.5. Lọc dữ liệu theo khoảng ngày với FILTER

Trong trường hợp ta muốn lọc dữ liệu theo khoảng thời gian, ví dụ như muốn lọc tất cả dữ liệu trong tháng 9 thì giá trị cột Date trong bảng SalesTable phải nằm trong khoảng thời gian từ ngày 01/09/2025 đến 30/09/2025. Lúc này ta sẽ sử dụng phép nhân * để đặt điều kiện như sau:

(SalesTable[Date]>=DATE(2025,9,1))*(SalesTable[Date]<=DATE(2025,9,30))

Lúc này hàm FILTER hoàn chỉnh để lọc dữ liệu là:

=FILTER(
SalesTable,
(SalesTable[Date]>=DATE(2025,9,1))*(SalesTable[Date]<=DATE(2025,9,30)),
"Không có dữ liệu"
)

Kết quả hàm trên trả về như sau:

lọc dữ liệu theo khoảng thời gian với hàm FILTER

Nếu không đặt dữ liệu ở Table, ta sử dụng công thức tương đương sau:

=FILTER(
Data!A2:L1000,
(Data!B2:B1000>=DATE(2025,9,1))*(Data!B2:B1000<=DATE(2025,9,30)),
"Không có dữ liệu"
)

1.6. Lọc dữ liệu theo giá trị nằm trong danh sách với FILTER

Với FILTER ta có thể tạo một danh sách các tiêu chí để làm điều kiện lọc dữ liệu, sau đó trong vùng xét điều kiện include ta sẽ sử dụng hàm MATCH để khớp vùng dữ liệu làm điều kiện.

Ví dụ: Ta muốn lọc tất cả dữ liệu “Miền Bắc” và “Miền Nam” trong cột Region. Thay vì sử dụng phép tính * để kết hợp điều kiện như mục 1.2 thì ta sẽ tạo danh sách ở N2:N4 để điền dữ liệu N2=”Miền Bắc, N3=”Miền Nam. Lúc này vùng xét điều kiện include sẽ là:

ISNUMBER(MATCH(SalesTable[Region], N2:N4, 0))

Trong đó:

  • MATCH(C2, N2:N4, 0) trả về vị trí nếu tìm thấy; nếu không, lỗi.
  • ISNUMBER(MATCH(...)) → sẽ trả về giá trị TRUE khi Region có trong danh sách N2:N4.

Lúc này hàm FILTER hoàn chỉnh để lọc dữ liệu là:

=FILTER(
SalesTable,
ISNUMBER(MATCH(SalesTable[Region], N2:N4, 0)),
"Không có dữ liệu"
)

Kết quả hàm trên sẽ trả về như sau:

lọc dữ liệu theo danh sách với FILTER

Nếu dữ liệu không sử dụng Table ta có thể sử dụng công thức tương đương sau:

=FILTER(
Data!A2:L1000,
ISNUMBER(MATCH(Data!C2:C1000, N2:N4, 0)),
"Không có dữ liệu"
)

1.7. Lọc lấy TOP N theo tiêu chí với hàm SORTBY

Khi lọc theo TOP N ví dụ như  (TOP 5 doanh thu hàng đầu) thì ta sẽ không sử dụng FILTER nữa mà sẽ sử dụng hàm SORTBY nhưng tiện ở đây nên mình sẽ giới thiệu thêm với các bạn.

Với bảng SalesTable trên, ta sẽ sử dụng công thưc sau:

=TAKE(SORTBY(Data!A2:L1000, Data!I2:I1000, -1), 5)

Trong đó:

  • SORTBY(array, by_array, -1) sắp giảm dần theo cột doanh thu (Revenue) (I).
  • TAKE(..., 5) lấy 5 dòng đầu sau khi sắp xếp (Top 5).

Kết quả của công thức trên khi chạy sẽ như sau:

công thức lọc dữ liệu TOP N

2. Cách sử dụng tính năng Advanced Filter để lọc dữ liệu

Advanced Filter cho phép lọc dữ liệu với điều kiện phức tạp, bao gồm cả điều kiện AND và OR. Ta cũng có thể trích xuất dữ liệu ra khu vực khác:

Cách sử dụng tính năng Adnvanced Filter như sau:

  • Bước 1: Tạo bảng điều kiện: Chuẩn bị một khu vực riêng với các tiêu đề cột và điều kiện lọc muốn áp dụng.
  • Bước 2: Thực hiện lọc:
    1. Chọn vùng dữ liệu cần lọc.
    2. Trên thanh công cụ, vào thẻ Data (Dữ liệu) và chọn Advanced (Nâng cao).
    3. Trong hộp thoại Advanced Filter:
      • Chọn Copy to another location (Sao chép sang vị trí khác) để trích xuất dữ liệu.
      • Trong ô List range (Phạm vi danh sách), chỉ định vùng dữ liệu gốc.
      • Trong ô Criteria range (Phạm vi tiêu chí), chọn bảng điều kiện bạn vừa tạo.
      • Trong ô Copy to (Sao chép đến), chỉ định nơi bạn muốn đặt dữ liệu đã lọc.
      • Nhấn OK để hoàn thành.

Trên đây là hướng dẫn chi tiết về cách lọc dữ liệu theo điều kiện trong Excel. Chúc các bạn áp dụng thành công!