之前練習GAS的時候,在YT有分享一段成果小影片,因為只是自己練習的紀錄,沒有特別考慮教學的層面,很開心YT看到網友留言有興趣了解做法,就寫篇教學BLOG分享囉~
ps. 但這個範本有很多手法算是稍微進階一點,如果函數很不熟,直接要做這個練習,會頗吃力,要多花一些時間消化喔~
步驟4 – 帶出星期的指定文字
從示範檔星期的欄位,會看到很長、看似複雜的函數,像這樣:
=
if
(
B3
=
“”
,
“”
,
vlookup
(
weekday
(
B3
,
2
)
,
星期清單
,
2
,
0
)
)
遇到很長的函數時,可以
【由內而外拆解】
,我用顏色標成要拆解的3個部分。
<1>
weekday(B3,2)
weekday函數可回傳第一個值(B3)是星期幾,第二個值是星期的換算標準。
1表示把星期日當成每周第一天,所以星期日會回傳1
2表示把星期一當成每周第一天,所以星期一會回傳1,我們用比較直覺的2
<2>
vlookup(
weekday(
B3
,
2
)
,
星期清單
,
2
,
0
)
得出星期幾的【數字】之後,利用vlookup去已命名範圍的【星期清單】帶出相對應的【國字】(也就是清單中第2欄的一二三四五六日)。
vlookup是有點複雜,但非常非常實用的函數,如果不熟悉語法,可以參考下圖。
步驟5 – 優化日期函數,不出現非當月的日期
(1)取得月份資料 =month(B3)
(2)用if去判斷,若該月份與指定月份不符合時,就不出現日期。(指定月份固定在I1所以要用$鎖定位置$I$1)
(3)將以上2個函數整合成一個
=
if
(
month
(B3+1
)
=
$I$1
,
B3
+
1
,
“”
)
▼▼優化前後的對照 GIF動圖示範▼▼
步驟6 – 帶出國定假日
(1)用vlookup,對照假日清單,找出該日期是否有特殊假日 =vlookup(B3,假日清單,3,0)
(2)沒有找到資料會顯示錯誤,所以外層加上iferror,語法是: =iferror(執行函數,錯誤時””空白)
=
iferror
(
vlookup
(
B3
,
假日清單
,
3
,
0
)
,
“”
)
(3)其中【假日清單】是在步驟3就設定好的命名範圍,所以可以直接使用,但這個清單的內容要自己手動維護更新喔!)
▼▼iferror優化前後的對照▼▼
(1)要指定條件(ex.補班出現綠底)變化視覺呈現時,使用:格式>>條件式格式設定
(2)設定時注意套用範圍
(3)選擇【自訂公式】去比對目標欄位是否=等於目標內容,如果相等就改變格式,參考下圖說明
▼▼操作位置&設定說明▼▼
以上7個步驟是完成月曆效果的方式,算是小進階的綜合應用了。
至於GAS製作按鈕來調整年份和月份,不是必要的功能,因為年份和月份手動改數字就行,而且GAS是大進階應用,在這裡就暫時不分享了。
希望對雲端月曆效果有興趣的朋友,這篇能給你一點收穫。