Công thức Excel: Lọc dữ liệu giữa các ngày
Công thức Excel: Lọc dữ liệu giữa các ngày

Công thức chung
=FILTER(data,(dates>=A1)*(dates<=A2),"No data")
Tóm lược

Để lọc dữ liệu để bao gồm các bản ghi giữa hai ngày, bạn có thể sử dụng hàm FILTER với logic boolean. Trong ví dụ được hiển thị, công thức trong F8 là:

=FILTER(B5:D15,(C5:C15>=F5)*(C5:C15<=G5),"No data")

Trong đó trả về các bản ghi có ngày từ 15 tháng 1 đến 15 tháng 3, bao gồm cả.

Giải trình

Công thức này dựa trên Chức năng FILTER để truy xuất dữ liệu dựa trên một bài kiểm tra logic được tạo bằng logic boolean biểu hiện. Đối số mảng được cung cấp dưới dạng B5: D15, chứa toàn bộ dữ liệu không có tiêu đề. Các bao gồm lập luận dựa trên hai so sánh hợp lý:

(C5:C15>=F5)*(C5:C15<=G5)

Biểu thức bên trái kiểm tra xem ngày có lớn hơn hoặc bằng ngày “Từ” trong F5 hay không. Đây là một ví dụ về logic boolean. Biểu thức bên phải kiểm tra xem ngày có nhỏ hơn hoặc bằng ngày “Tới” trong G5 hay không. Hai biểu thức được kết hợp với một toán tử nhân, điều này tạo ra mối quan hệ AND.

Sau khi các biểu thức logic được đánh giá, chúng ta có:

({TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE})*
({TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE})

Lưu ý rằng có 11 kết quả trong mỗi bộ dấu ngoặc đơn, một kết quả cho mỗi ngày trong dữ liệu. Phép toán nhân buộc các giá trị TRUE FALSE thành 1s và 0s, do đó, kết quả cuối cùng là một mảng duy nhất như sau:

{1;1;1;1;0;0;0;0;0;0;0}

Lưu ý bốn số 1 trong mảng tương ứng với bốn ngày vượt qua bài kiểm tra. Mảng này được chuyển đến hàm FILTER và được sử dụng để lọc dữ liệu. Chỉ những hàng có kết quả là 1 mới trở thành đầu ra cuối cùng.

Đối số “if_empty” được đặt thành “Không có dữ liệu” trong trường hợp không tìm thấy dữ liệu phù hợp.

https://exceljet.net/formula/filter-data-between-dates