Công thức Excel: Liệt kê các ngày nghỉ giữa hai ngày -

Mục lục

Công thức chung

(=TEXTJOIN(", ",TRUE,IF(dates>=start,IF(dates<=end,holidays,""),"")))

Tóm lược

Để liệt kê các ngày lễ xảy ra giữa hai ngày, bạn có thể sử dụng công thức dựa trên hàm TEXTJOIN và IF.

Trong ví dụ được hiển thị, công thức trong F8 là:

(=TEXTJOIN(", ",TRUE,IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")))

Đây là một công thức mảng và phải được nhập bằng control + shift + enter.

Giải trình

Ở cấp độ cao, công thức này sử dụng hàm IF lồng nhau để trả về một mảng các ngày nghỉ giữa hai ngày. Mảng này sau đó được xử lý bởi hàm TEXTJOIN, hàm này sẽ chuyển mảng thành văn bản bằng cách sử dụng dấu phẩy làm dấu phân cách.

Làm việc từ trong ra ngoài, chúng tôi tạo ra mảng các ngày lễ phù hợp bằng cách sử dụng IF lồng nhau:

IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")

Nếu ngày trong B4: B12 lớn hơn hoặc bằng ngày bắt đầu trong F5 và nếu ngày trong B4: B12 nhỏ hơn hoặc bằng ngày kết thúc trong F6, thì hàm IF trả về một mảng các ngày lễ. Trong ví dụ được hiển thị, danh sách trông giống như sau:

(""; ""; "Ngày Tổng thống"; "Ngày tưởng niệm"; ""; ""; ""; ""; "")

Mảng này sau đó được chuyển đến hàm TEXTJOIN dưới dạng đối số text1 , trong đó dấu phân cách được đặt thành "," và ignore_empty là TRUE. Hàm TEXT JOIN xử lý các mục trong mảng và trả về một chuỗi trong đó mọi mục không trống được phân tách bằng dấu phẩy cộng với khoảng trắng.

Lưu ý: hàm TEXTJOIN là một hàm mới có sẵn trong Office 365 và Excel 2019.

thú vị bài viết...