檢舉內容
新的一年,來為你的目標倒數吧!

2023/01/01閱讀時間約 9 分鐘
祝各位新年快樂!歡迎來到 2023。
一年的開頭,不免俗自我介紹一下。喜特先生是一個分享 Google 試算表功能、函式、進階技巧和各類應用的全中文教學品牌。除了固定在每週日晚上七點,在方格子發文之外,也開放讀者詢問各種試算表相關的問題。
我的文章是公開免費的、都沒有設定付費閱讀,不過如果你覺得我的教學有稍稍幫忙到你,讓你的試算表人生變得更輕鬆,歡迎你贊助!
回顧一下我的 2022,一邊上班、一邊寫作,從三月開始週更,不知不覺就寫了 41 篇。託大家的福,我多了 3 位新訂閱的讀者、收了幾筆抖內、有 70 多位追蹤、閱讀人次也衝破了 7 萬人,的確實現了我內容變現的小小夢想,謝謝方格子、也謝謝大家支持。
今年除了會繼續維持週週更新之外,也希望有那個肝、有更多力氣推出更多內容跟服務!還請大家多多支持 🙏

那麼,2023 到了,今年有什麼新規劃嗎?或是有什麼重要的日子值得倒數一下呢?我們可以在試算表用三個方法,計算兩個日期的相差天數,當然計算倒數日也可以的,例如:
  • 我幾歲了?(幾年幾月幾日?)
  • 今天離大考還有幾天?
  • 跟老伴在 2008/02/14 結婚,到現在已經多久了?
  • 2023/01/01 到 2023/12/31 有幾個工作天?
那我們就馬上來看看怎麼做吧!

TODAY 函式

先認識一個等等偶爾會出現的好朋友,TODAY 函式。我們可以用 TODAY 函式取得今天的日期,而且什麼設定也沒有,只要在儲存格上面寫:
=TODAY()
就可以了!像這樣,然後 Enter 敲下去就好了:

方法一、兩個日期相減

最簡單又直接的方法,就是直接把兩個日期拿出來相減囉。
你可以直接在試算表上輸入日期,像是這樣:
然後在 C1 上,寫 B1 減去 A1:
=B1 - A1
就會得到:
這樣就是相差 364 天了。嗯?那如果是 A1 減 B1 呢?
=A1 - B1
就會出現負數了。這是為什麼呢?在 Google 試算表裡面,日期其實算是一種數字來處理,有個要訣是:
日期越早,數字越小。
日期越晚,數字越大。
因為剛剛我們把 2023 年 1 月 1 日(小)減去 2023 年 12 月 31 日(大),就會得到負數了。你當然也可以把剛剛提到的 TODAY 函式用上去,像是:
=TODAY() - B1
就知道 B1 上面的日期跟今天相隔多少天了。你當然也可以直接在函式裡寫日期,並且用雙引號括起來:
=TODAY() - "2022/01/01"
不過如果你想看到相差的「月數」或「年數」的話,我們就可以用第二個方法「DATEDIF」。

方法二、DATEDIF

第二種方法是利用 DATEDIF 函式,一樣取得兩個日期之間的相差多少「時間單位」,例如相差幾「天」、幾個「月」、幾「年」這樣。
使用方法也很簡單:
=DATEDIF(開始日期, 結束日期, 時間單位代號)
開始日期和結束日期就像剛剛那樣,填入儲存格或是直接輸入日期都可以。這樣至於時間單位代號的話,有以下幾個,都要用雙引號包好。
  • Y:傳回開始日期和結束日期之間的整年數。
  • M:傳回開始日期和結束日期之間的整月數。
  • D:傳回開始日期和結束日期之間的天數。
  • MD:傳回開始日期和結束日期之間的天數(日期中的月和年都會被忽略)。
  • YM:傳回開始日期和結束日期之間的整月數(日期中的日和年都會被忽略)。
  • YD:傳回開始日期和結束日期之間的天數(日期中的年會被忽略)。
欸?MD、YM、YD 又是什麼?我粗暴的理解是覺得它們有點像是取餘數的概念,得出兩個日期相差的單位。舉個例來說,這個是 MD,把 2023 年跟月份忽略、只算日期(01 跟 31)之間的相差天數:
=DATEDIF("2023/01/01", "2023/03/31", "MD")
=30
這個是 YM,把日期中的日(01 跟 31)和年(2000 跟 2023)都會被忽略,只計算相差的月數。
=DATEDIF("2000/01/01", "2023/03/31", "YM")
=2
最後是 YD,日期中的年會被忽略,算出兩個日期之間相差的天數。
=DATEDIF("2020/05/05", "2023/06/30", "YD")
=56
使用方法也跟剛剛一樣,例如我這邊有 A1 跟 B1 兩個日期,要取得兩個日期之間的差距:
在 C1 輸入:
=DATEDIF(A1, B1, "D")
我們就會得到:
這樣就好了!

方法三、NETWORKDAYS.INTL

最後一個是可以排除週末(一週中休息的日子)和假日,得到兩個日期間相差工作日的函式,叫「NETWORKDAYS.INTL」,超聰明!
不過要輸入的參數有一點點複雜,我們來看看:
=NETWORKDAYS.INTL(開始日期, 結束日期, [週末], [假日])
開始日期跟結束日期都跟剛剛一樣,應該是沒問題。
  • [週末]:選填,等等會輸入特定的東西,代表一週中哪幾天是週末(休息日)。預設是「1」,代表週六跟週日休息。
  • [假日]:選填,指定有假日日期的儲存格範圍。
因為這兩個參數是選填,如果什麼不填就是回傳「不考慮在週六跟週日休息的狀況下,在兩個日期間的工作日有多少唷」。

週末參數

指定週末的參數有兩種方法,一種是輸入數字、一種是輸入字串。
輸入數字
這方法有一點點複雜,建議直接查表:
例如說,我想知道 2023/01/01 到 2023/12/31 之間,在星期六跟星期日休息的狀況下有幾個工作天,就在「週末」的參數寫 1:
=NETWORKDAYS.INTL("2023/01/01", "2023/12/31", 1)
=260
又或是只有星期日休息,那就是在週末的參數寫 11:
=NETWORKDAYS.INTL("2023/01/01", "2023/12/31", 11)
=312
但我個人覺得這方法不太直覺、沒那麼喜歡,而且表也沒有包含像是「週休三日」、「每週一、三、五休息」這種狀況,所以我想介紹下一個方法:
輸入字串
用這個方法的話,需要輸入 7 個數字、並且用雙引號括起來以表示字串。看起來會像是這樣:
"0000011"
"0101010"
"1111100"
雙引號裡面的數字代表一個星期裡的每一天,從左到右開始算,第一個數字代表星期一、第二個數字代表星期二、第三個數字代表星期三,以此類推。還有,這些數字只能寫 0 跟 1,0 代表上班、1 代表休息。我們看幾個例子:
"0000011" --> 每星期六、每星期日休息
"0101010" --> 每星期二、每星期四、每星期六休息
"1111100" --> 每星期一到五休息
舉個例子,計算在每星期六、星期日休息的狀況下,2023 年 1 月 1 日到 12 月 31 日的工作日有多少個:
=NETWORKDAYS.INTL("2023/01/01", "2023/12/31", "0000011")
=260
計算每星期五、星期六、星期日休息的狀況下,計算 2023 年 1 月 1 日到 12 月 31 日的工作日有多少個:
=NETWORKDAYS.INTL("2023/01/01", "2023/12/31", "0000111")
=208

假日參數

你還可以告訴 NETWORKDAYS.INTL 函式,有哪幾天是國定假日,在計算工作日的時候把它排除。在這邊要指定一個儲存格範圍,範圍裡面需要有我們想指定的日期,像是這樣(以台灣的國定假日為例):
第 10 行之後還有別的假日!
(歡迎到這邊複製上表)
等等就可以在 NETWORKDAYS.INTL 指定 B 欄這個範圍,告訴試算表要排除這些日期、不列入工作日。舉例來說,假設每週六、日休息,並排除我們指定的假日:
=NETWORKDAYS.INTL("2023/01/01", "2023/12/31", "0000011", B2:B)
=194
跟著做做看吧!也歡迎讓我知道你有什麼問題唷。

如果你喜歡這篇文章,請幫我按個愛心支持、或把它收藏起來吧!也歡迎你贊助支持我的教學,也可以在 Liker 按鈕幫我拍拍手,很謝謝你的支持!如果有任何問題或鼓勵,也都歡迎留言一下,讓我知道我還可以怎麼幫助你。
想要看更多文章,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!
我是喜特先生,Mr. Sheet,我們下個教學見!
贊助支持創作者,成為他繼續創作的動力吧!
喜特先生 Mr. Sheet
喜特先生 Mr. Sheet
資料分析師、市調顧問,目前著有方格子專題「Google 試算表教學站」,分享 Google 試算表的函式、生活應用、Apps Script、基本功能以及資料分析的基本功。目標是挑戰成為最完整全中文的 Google 試算表教學品牌。
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
領取見面禮
只要設定追蹤作者,即可享有 48小時
Premium 閱讀權限