Công thức Excel: Nhận sự kiện đã lên lịch tiếp theo -

Mục lục

Công thức chung

(=MIN(IF((range>=TODAY()),range)))

Tóm lược

Để nhận sự kiện đã lên lịch tiếp theo từ danh sách các sự kiện có ngày, bạn có thể sử dụng công thức mảng dựa trên các hàm MIN và TODAY để tìm ngày tiếp theo và INDEX và MATCH để hiển thị sự kiện vào ngày đó. Trong ví dụ được hiển thị, công thức trong G6 là:

(=MIN(IF((date>=TODAY()),date)))

Trong đó "ngày" là phạm vi được đặt tên D5: D14.

Lưu ý: đây là công thức mảng và phải được nhập bằng Control + Shift + Enter.

Giải trình

Phần đầu tiên của giải pháp sử dụng hàm MIN và TODAY để tìm "ngày tiếp theo" dựa trên ngày hôm nay. Điều này được thực hiện bằng cách lọc ngày thông qua hàm IF:

IF((date>=TODAY()),date)

Kiểm tra logic tạo ra một mảng các giá trị TRUE / FALSE, trong đó TRUE tương ứng với các ngày lớn hơn hoặc bằng ngày hôm nay:

(FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE)

Khi kết quả là TRUE, ngày được chuyển vào mảng do IF trả về. Khi kết quả là FALSE, ngày được thay thế bằng boolean FALSE. Hàm IF trả về mảng sau thành MIN:

(FALSE;FALSE;FALSE;43371;43385;43399;43413;43427;43441;43455)

Sau đó, hàm MIN bỏ qua các giá trị FALSE và trả về giá trị ngày nhỏ nhất (43371), là ngày 28 tháng 9 năm 2018 trong hệ thống ngày của Excel.

Lấy tên phim

Để hiển thị phim được liên kết với "ngày tiếp theo" ", chúng tôi sử dụng INDEX và MATCH:

=INDEX(movie,MATCH(G6,date,0))

Bên trong INDEX, MATCH tìm vị trí của ngày trong G6 trong danh sách ngày. Vị trí này, 4 trong ví dụ, được trả về INDEX dưới dạng số hàng:

=INDEX(movie,4)

và INDEX trả lại phim ở vị trí đó, "The Dark Knight".

Tất cả trong một công thức

Để trả về Phim tiếp theo trong một công thức duy nhất, bạn có thể sử dụng công thức mảng sau:

(=INDEX(movie,MATCH(MIN(IF((date>=TODAY()),date)),date,0)))

Với MINIFS

Nếu bạn có phiên bản Excel mới hơn, bạn có thể sử dụng hàm MINIFS thay vì công thức mảng trong G6:

=MINIFS(date,date,">="&TODAY())

MINIFS đã được giới thiệu trong Excel 2016 thông qua Office 365.

Xử lý lỗi

Công thức trên trang này sẽ hoạt động ngay cả khi các sự kiện không được sắp xếp theo ngày. Tuy nhiên, nếu không có ngày sắp tới, hàm MIN sẽ trả về 0 thay vì lỗi. Điều này sẽ hiển thị dưới dạng ngày "0-Jan-00" trong G6 và công thức INDEX và MATCH sẽ tạo ra lỗi # N / A, vì không có hàng thứ 0 nào để lấy giá trị từ đó. Để mắc lỗi này, bạn có thể thay thế hàm MIN bằng hàm SMALL, sau đó bọc toàn bộ công thức trong IFERROR như sau:

=(IFERROR(SMALL(IF((date>=TODAY()),date),1),"None found"))

Không giống như hàm MIN, hàm SMALL sẽ thông báo lỗi khi không tìm thấy giá trị, vì vậy hàm IFERROR có thể được sử dụng để quản lý lỗi.

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