Notion Formula 2.0 § 其他日期運用

閱讀時間約 7 分鐘

前言

我喜歡的大神 Red Gregory(以下稱紅姊)發表過一篇文章〈4 Advanced Date Formulas In Notion To Copy〉,那時 Notion 的公式還是 1.0 版本,現在我們來練習將有需要的公式轉換成 2.0 格式。

我自己經常使用其中的幾個公式,所以將練習過程和結果記錄下來,方便日後查找和參考。

練習題

練習一:將 Name 欄位的日期轉為對應日期

我自己常用的日記模板中,是使用「日期」作為 Name 欄位的資料,輸入格式為「西元年份 + 月份 + 日期」。平時,我會先在 Excel 等工具中大批量生成這種數字字串,然後將格式如 2024.10.01 的日期拉出 31 行,並複製到 Notion 中。透過紅姊的公式,就可以匹配 Name 欄位的日期(字串型態),轉變成對應的日期。

以下是紅姊原本的公式(月-日-年):

dateAdd(dateAdd(dateAdd(dateSubtract(dateSubtract(dateSubtract(dateSubtract(dateSubtract(now(), year(now()), "years"), month(now()), "months"), date(now()) - 1, "days"), hour(now()), "hours"), minute(now()), "minutes"), toNumber(slice(prop("Name"), 6, 10)), "years"), toNumber(slice(prop("Name"), 0, 2)) - 1, "months"), toNumber(slice(prop("Name"), 3, 5)) - 1, "days")

依照紅姊的公式邏輯,以前我改過的公式如下(年-月-日):

dateAdd(dateAdd(dateAdd(fromTimestamp(0), toNumber(substring(replaceAll(replaceAll(replaceAll(prop("Name"), "/", ""), "-", ""), " ", ""), 0, 4)) - 1970, "years"), 
toNumber(substring(replaceAll(replaceAll(replaceAll(prop("Name"), "/", ""), "-", ""), " ", ""), 5, 7)) - 1, "months"), toNumber(substring(replaceAll(replaceAll(replaceAll(prop("Name"), "/", ""), "-", ""), " ", ""), 8, 10)) - 1, "days")

由於紅姊的方式考慮到大多數人習慣使用「/」、「-」、「.」來分隔年、月、日,單純用幾個replace()就可以滿足大部分需求。不過,既然我已經規範了日期格式為「年-月-日」,而且想多練習一些技巧,那麼我們可以引入正則表達式(regex)的概念。

在這裡使用 regex 其實相當簡單,只需要保留數字部分即可,用「\D」來去除所有非數字的字符,效果如下圖。

raw-image
lets(
日期字串, replaceAll(prop("Name"), "\\D", ""), /* 將欄位的日期字串保留數字部分*/
年份, toNumber(substring(日期字串, 0, 4)),
月份, toNumber(substring(日期字串, 4, 6)),
日期, toNumber(substring(日期字串, 6, 8)),

fromTimestamp(0)
.dateAdd(年份 - 1970, "years")
.dateAdd(月份 - 1, "months")
.dateAdd(日期 - 1, "days")
)

※注意:在輸入日期格式時,月份跟日期都要補足兩位數,例如三月就要輸入03。

這題比較難的是,我們需要將指定欄位的字串資料,轉變成數字,再轉變成日期。

練習二:時間區間換算天、時、分

這是之前有同好提出過的問題,其實這題不難,只是需要一些步驟。

最直接的方法是使用dateBetween()函數計算開始和結束時間之間的差值,並以分鐘作為單位,接著再將分鐘轉換為其他時間單位。

  • 1 小時 = 60 分鐘
  • 1 天 = 24 小時 = 1440 分鐘

通過這些基本換算,我們就能輕鬆完成時間區間的換算。

raw-image
lets(
結束時間,prop("日期區間").dateEnd(),
開始時間, prop("日期區間").dateStart(),
分鐘差, dateBetween(結束時間, 開始時間, "minutes"),
, floor(分鐘差 / 1440),
, floor((分鐘差 -* 1440) / 60),
, floor((分鐘差 -* 1440 -* 60)),
+ " 天 " ++ " 小時 " ++ " 分鐘"
)

練習三:判斷時間區間是否有包含今天

最後一個練習也是之前很多同好有碰到的需求。

在專案或任務管理中,某些項目會顯示為一段時間的範圍,而待辦清單需要篩選「當天」且「尚未完成的項目」的條件。

當只有一個日期時,我們可以簡單地使用 today() 來判斷是否為當天,但若涉及時間區間,就需要比較開始時間與結束時間,才能準確篩選出符合條件的項目。

lets(
結束時間,prop("日期區間").dateEnd(),
開始時間, prop("日期區間").dateStart(),
if(today() >= 開始時間 and today() <= 結束時間, true, false)
)
範例當天的日期是2024.10.15。

範例當天的日期是2024.10.15。

結語

目前日期相關的公式,我就先更新到這裡 🎉,我還有找到很多有趣的運用,會再慢慢地分享的。

這個系列真的是比較花時間與心力,如果你覺得挺有幫助的,請幫我點讚、分想、留言,或是請我喝杯咖啡☕、奶茶🧋~萬分感謝 ❤️。

範例頁面

將Name轉成日期

時間區間

參考資料



avatar-img
127會員
80內容數
小小的細縫裡,夢想的小苗也會萌芽。 我想在餘生中,體會生命的感動和奧秘。 透過仔細觀察,將發現世界不同的美好。 歡迎你來到 ~ ♡ Chloe 的小世界 ♡
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Chloe小窩 的其他內容
透過使用公式 2.0,使用者可以自定義時間標籤,清晰地顯示任務的安排及空白時段。
Notion Formula 2.0 日期公式運用第三篇:如何在 Notion 中使用公式製作迷你月曆。
Notion Formula 2.0 日期公式運用第二篇:工作日計算(可自訂國定假日、特殊假期)
Notion Formula 2.0 日期公式運用第一篇:倒數進度條、x年回顧彩蛋、生日提醒。
如果你覺得過多的 Rollup 拖累了你的 Notion 呈現速度,那如何不依賴 Rollup 功能,來實現資料統計的效果呢?
透過使用公式 2.0,使用者可以自定義時間標籤,清晰地顯示任務的安排及空白時段。
Notion Formula 2.0 日期公式運用第三篇:如何在 Notion 中使用公式製作迷你月曆。
Notion Formula 2.0 日期公式運用第二篇:工作日計算(可自訂國定假日、特殊假期)
Notion Formula 2.0 日期公式運用第一篇:倒數進度條、x年回顧彩蛋、生日提醒。
如果你覺得過多的 Rollup 拖累了你的 Notion 呈現速度,那如何不依賴 Rollup 功能,來實現資料統計的效果呢?
你可能也想看
Google News 追蹤
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
在日常工作中,我們經常需要計算兩個日期之間的天數。無論是計算專案進行的天數、員工的工作天數,還是活動的剩餘天數,這些操作在EXCEL中都能輕鬆實現。 其實日期要計算天數超級簡單 日期天數=結束日期-開始日期+1 為什麼要+1呢? 可以讀一下這篇⬇️ 🔗EXCEL小知識 | 計算日期
Thumbnail
Hi 我是 VK~ 在 8 月底寫完〈探索 AI 時代的知識革命:NotebookLM 如何顛覆學習和創作流程?〉後,有機會在 INSIDE POSSIBE 分享兩次「和 NotebookLM 協作如何改變我學習和創作」的主題,剛好最近也有在許多地方聊到關於 NotebookLM 等 AI 工具
Thumbnail
國泰CUBE App 整合外幣換匯、基金、證券等服務,提供簡便、低成本的美股定期定額投資解決方案。 5分鐘開戶、低投資門檻,幫助新手輕鬆進軍國際股市;提供人氣排行榜,讓投資人能夠掌握市場趨勢。
Thumbnail
這是張老師的第三本書,我想前二本應該也有很多朋友們都有讀過,我想絕對是受益良多,而這次在書名上就直接點出,著重在從投資的角度來切入
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
在日常工作中,我們經常需要計算兩個日期之間的天數。無論是計算專案進行的天數、員工的工作天數,還是活動的剩餘天數,這些操作在EXCEL中都能輕鬆實現。 其實日期要計算天數超級簡單 日期天數=結束日期-開始日期+1 為什麼要+1呢? 可以讀一下這篇⬇️ 🔗EXCEL小知識 | 計算日期