1. 概述
1.1 預期效果
在報表設計中,希望能夠透過公式判斷當月的工作日和週末,如下圖所示:
1.2 實現思路
方案一:若您使用的設計器為 11.0.4 及之後的版本,可以使用 ISWORKDAY 函式。
方案二:透過 if 函式來實現。
注:暫不支援判斷法定節假日。
2. 範例
2.1 報表設計
設計報表樣式,儲存格內容如下圖所示:
1)A2 儲存格插入公式:
RANGE(dateinmonth(today(),1),dateinmonth(today(),-1))
公式說明如下表所示:
公式 | 含義 |
---|---|
dateinmonth(today(), 1) | 傳回當前月份第一天的日期 |
dateinmonth(today(), -1) | 傳回當前月份最後一天的日期 |
RANGE(dateinmonth(today(), 1), dateinmonth(today(), -1)) | 獲取當前月份從第一天到最後一天,所有日期的序列 注:RANGE 函式具體使用可參見:Range函式使用介紹 |
2)B2儲存格插入公式:
switch(weekday(A2),0,"星期天",1,"星期一",2,"星期二",3,"星期三",4,"星期四",5,"星期五",6,"星期六")
公式 | 含義 |
---|---|
weekday(A2) | 獲取 A2 列的日期並傳回星期數。傳回值為介於 0 到 6 之間的某一整數,分別代表從星期日到星期六的某一天 |
switch(weekday(A2),0,"星期天",1,"星期一",2,"星期二",3,"星期三",4,"星期四",5,"星期五",6,"星期六") | 如果「weekday(A2)」的傳回值為0,則整個函式傳回結果為「星期天」;如果「weekday(A2)」的傳回值為1,則整個函式傳回結果為「星期一」,以此類推 注:switch 函式的具體介紹請參見:switch函式 |
3)C2儲存格插入公式:
if(inarray(weekday(A2),[0,6])>0,"週末","工作日")
公式說明如下表所示:
公式 | 含義 |
---|---|
weekday(A2) | 獲取 A2 列的日期並傳回星期數。傳回值為介於 0 到 6 之間的某一整數,分別代表星期中的某一天(從星期日到星期六) |
inarray(weekday(A2), [0,6]) | 傳回「weekday(A2)」在陣列[0,6]的位置,例如「weekday(A2)」=1,則結果為 0;「weekday(A2)」=0,則結果為1;「weekday(A2)」=6,則結果為2 注:inarray函式具體介紹請參見:inarray |
if(inarray(weekday(A2), [0,6]) > 0, "週末", "工作日") | 若 A2 日期是週六或週日,則最終結果為「週末」;其他情況為「工作日」 |
2.2 效果預覽
1)PC端
儲存報表,點選「分頁預覽」,效果同 1.1 節預期效果一致。
2)行動端
點選「行動端預覽」,App 端及 H5 端均支援,效果如下圖所示: