Đặt cái bảng dò ngày lễ vào một name PUB_HOL
Đặt thêm một name để tính ngày trong tháng DAYOFMONTH = COLUMN()-COLUMN($O1:$O1)
Đặt thêm một name để tính ngày thực sự MEDATE = DATE($P$1, $S$1, DAYOFMONTH)
Hàm cho dòng Date (dòng này dùng định dạng ngày là "dd":
IF(MONTH(MEDATE=$S$1, MEDATE, "") ' kéo ra đủ 31 cột, tháng có dưới 31 ngày sẽ cho trị ""
Hàm cho dòng Day
IF(P$2="", "", CHOOSE(WEEKDAY(MEDATE), "Sun", "Mon", "Tue", "Wed", "Thu", "Fri, "Sat"))
Hàm cho dòng Code
IF(P$2="", "", IF(ISNUMBER(MATCH(MEDATE, INDEX(PUB_HOL, , 5), 0)), "W", "PH"))
Chú ý: bảng tính phức tạp thì chớ có merge cells. Rất khó kiểm soát và debug lỗi.