Trong quá trình xử lý dữ liệu và làm báo cáo trên Excel, việc trích xuất thông tin theo một khung thời gian nhất định (ví dụ: báo cáo doanh thu từ ngày X đến ngày Y) là một yêu cầu cực kỳ phổ biến. Nếu trước đây chúng ta thường phụ thuộc vào công cụ Filter thủ công, thì nay với hàm FILTER trên các phiên bản Excel mới (Office 365, Excel 2021), bạn có thể tự động hóa quy trình này một cách chính xác và chuyên nghiệp.
Bài viết này sẽ hướng dẫn chi tiết cách lọc dữ liệu trong khoảng ngày bằng hàm FILTER, giúp bạn tối ưu hóa hiệu suất làm việc.
Công thức cốt lõi để lọc theo ngày tháng
Để lọc dữ liệu nằm giữa hai mốc thời gian (Từ ngày… Đến ngày…), chúng ta cần kết hợp hàm FILTER với toán tử nhân (*) để biểu thị điều kiện “VÀ” (AND).
Cấu trúc tổng quát của công thức như sau:
=FILTER(vùng_dữ_liệu, (cột_ngày >= ngày_bắt_đầu) * (cột_ngày <= ngày_kết_thúc), "Không tìm thấy")
Áp dụng vào ví dụ thực tế, giả sử chúng ta có bảng dữ liệu từ B5:D13, cột ngày tháng nằm ở D5:D13, ô chứa ngày bắt đầu là F2 và ngày kết thúc là G2. Công thức cụ thể sẽ là:
=FILTER(B5:D13, (D5:D13>=F2) * (D5:D13<=G2))
Kết quả trả về sẽ là danh sách các hàng dữ liệu thỏa mãn cả hai điều kiện: lớn hơn hoặc bằng ngày bắt đầu và nhỏ hơn hoặc bằng ngày kết thúc.
Hàm filter lọc dữ liệu trong khoảng ngày
Lưu ý quan trọng về định dạng dữ liệu
Một lỗi rất phổ biến khiến công thức này trả về lỗi #CALC! hoặc kết quả sai lệch chính là định dạng dữ liệu.
Bạn cần đảm bảo cột chứa ngày tháng (D5:D13) và các ô điều kiện (F2, G2) phải chuẩn định dạng Date (Ngày tháng). Nếu dữ liệu được lưu dưới dạng Text (Văn bản) dù trông giống ngày tháng, Excel sẽ không thể thực hiện phép so sánh lớn hơn/nhỏ hơn, dẫn đến công thức không hoạt động.
Mẹo: Để kiểm tra, bạn có thể dùng hàm
=ISNUMBER(ô_cần_kiểm_tra). Nếu kết quả là TRUE, đó là dữ liệu ngày tháng hợp lệ (vì Excel lưu ngày tháng dưới dạng số sê-ri).
Phân tích chuyên sâu: Tại sao công thức này hoạt động?
Nhiều người dùng Excel thành thạo thường thắc mắc tại sao lại sử dụng dấu nhân * giữa hai điều kiện ngày tháng. Đây chính là vẻ đẹp của công thức mảng động (Dynamic Array).
Trong công thức (D5:D13>=F2) * (D5:D13<=G2), Excel sẽ xử lý từng phần như sau:
- (D5:D13>=F2): So sánh từng ô trong cột ngày với ngày bắt đầu. Kết quả trả về một mảng các giá trị TRUE (Đúng) hoặc FALSE (Sai).
- (D5:D13<=G2): Tương tự, so sánh với ngày kết thúc và trả về mảng TRUE/FALSE.
Khi bạn nhân hai mảng này với nhau, Excel tự động chuyển đổi giá trị logic sang số học:
- TRUE = 1
- FALSE = 0
Phép toán sẽ diễn ra theo logic:
- TRUE TRUE = 1 1 = 1 (Thỏa mãn cả hai điều kiện -> Giữ lại)
- TRUE FALSE = 1 0 = 0 (Loại)
- FALSE TRUE = 0 1 = 0 (Loại)
- FALSE FALSE = 0 0 = 0 (Loại)
Mô phỏng quá trình Excel xử lý mảng điều kiện khi nhấn phím F9.
Như trong ví dụ minh họa bằng ảnh động phía trên, khi bôi đen vùng điều kiện và nhấn phím F9 để kiểm tra, bạn sẽ thấy kết quả mảng dạng {1;1;1;1;0;0;0;0;0}. Hàm FILTER sẽ chỉ trích xuất những dòng tương ứng với số 1.
Kết luận
Sử dụng hàm FILTER để lọc dữ liệu theo khoảng thời gian là một kỹ thuật hiện đại, giúp báo cáo của bạn trở nên động và linh hoạt hơn rất nhiều so với phương pháp Filter truyền thống. Điểm mấu chốt nằm ở việc hiểu rõ cơ chế nhân mảng logic và đảm bảo tính nhất quán của dữ liệu đầu vào.
Hy vọng thủ thuật này sẽ giúp bạn xử lý các báo cáo định kỳ một cách nhanh chóng. Để hiểu rõ hơn về thao tác thực tế, bạn có thể tham khảo video hướng dẫn chi tiết dưới đây:
Video hướng dẫn chi tiết từ Học Excel Online
Tài liệu tham khảo
- Hỗ trợ của Microsoft về hàm FILTER.
- Kiến thức về định dạng Date & Time trong Excel.
- Kỹ thuật xử lý mảng động (Dynamic Arrays) trong Office 365.











Discussion about this post