熟悉 Notion 的朋友應該都知道,Notion 的公式只能根據既有屬性做計算,沒辦法自己跑出「即時」的時間,也就是說沒辦法只用一個公式就做出計時功能。
我一開始也覺得這是不可能的任務,直到前陣子在架設新模板時靈機一動,想到了下面這個解決方法──只要善用 3 個屬性,就能組出一套完整的 Notion 計時功能,讓 Notion 也能像碼表一樣記錄時間。今天就把這個方法整理出來分享給你。
如果你還不確定自己適不適合學 Notion,可以先看這篇:Notion 是什麼?我適合學 Notion 嗎?帶你從 0 建立第一個筆記系統
為什麼 Notion 公式無法即時運算?
先簡單解釋一下,為什麼 Notion 公式沒辦法即時運算:Notion 的公式只能拿資料庫裡「既有的屬性」當作計算條件,例如文字、數字、日期等等,本質上是靜態的,不會自己隨著時間變動。
但有一個例外,那就是now() 函式,它會回傳「執行當下」的時間,等於幫公式開了一個能存取即時時間的機會,而這也是我們等一下用來實現 Notion 計時功能的關鍵。
Notion 計時功能的原理
我先來介紹一下 Notion 計時功能的原理,首先我們需要建立 3 個屬性,分別是:
- 計時按鈕(按鈕):用於啟動計時、執行公式
- 計時起點(日期):記錄計時開始的時間
- 累計分鐘數(數字):紀錄多段計時累計的時間
原理其實不複雜,整個流程是這樣循環的:
- 按下計時按鈕時,Notion 會把當下的時間記錄到「計時起點」,代表計時開始
- 再次按下計時按鈕時,公式會用「現在時間-計時起點」算出中間經過了多少時間,加總進「累積分鐘數」,同時清空「計時起點」
- 之後每次要重新計時,只要再按一次計時按鈕,就會再記錄一次「計時起點」,如此循環下去

設定 Notion 計時狀態
雖然現在可以實現計時效果了,但我們很難從畫面上確認現在是否正在執行中,所以可以新增建立以下這個公式,用來顯示當前的計時狀態,方便做判斷。
if( not empty( 計時起點 ), style("🟢 進行中", "c", "green"), if( 累計分鐘數 > 0, style("🟡 已執行 " + format( 累計分鐘數 ) + " 分鐘", "c", "yellow"), style("⚪ 尚未開始", "c", "gray") ) )
/* by 什麼鬼設計 whatghost_design */

聽起來很複雜?
別擔心!我已經把按鈕跟公式範例都整理好了,點擊下方的按鈕就能領取,你也可以直接複製套用,不用自己重新設定一次。

Notion 計時功能可以用在哪裡?
我自己是把這個 Notion 計時功能應用在記錄每個任務實際花了多少時間處理,你也可以應用在:
- 紀錄自己的上下班時間
- 紀錄接案時每個專案、客戶的實際工作時數,方便計費或結算報酬
- 追蹤運動、閱讀、學習等個人習慣的累積時數
- 紀錄每次會議或任務實際花費的時間,優化工作排程
許多時間管理的討論都指出,養成記錄時間的習慣有助於提升專注力與生產力(延伸閱讀:Is Time Tracking Effective?)
結語
以上就是如何用 Notion 打造「計時功能」啦!
只要建立「計時按鈕、計時起點、累積分鐘數」這 3 個屬性,就能讓 Notion 也擁有計時、累加工時的能力,不管是紀錄上下班時間還是任務花費,都能自動幫你算好。
如果執行上有任何問題,都歡迎用社群私訊我喔!
追蹤我的 Instagram
常見問題
Q:Notion 計時功能準確嗎?中途切換頁面或關掉 Notion 會不會不準?
不會,因為記錄的是精確的時間戳記,只要沒有再按一次計時按鈕結束計時,「計時起點」就會一直保留在原本按下的那個時間點,不受切換頁面、關閉 Notion 影響。
Q:可以同時計時多個任務嗎?
可以。因為這 3 個屬性是建立在資料庫欄位上,資料庫裡的每一列(每個任務、每個頁面)都有各自獨立的計時按鈕與計時起點,彼此互不影響,你可以同時對不同的任務按下開始計時。
Q:這個計時功能會不會拖慢 Notion 的速度?
不會,公式只用到 3 個基本屬性(按鈕、日期、數字),沒有用到關聯或即時運算,就算資料庫累積很多筆資料,也不會明顯影響 Notion 的載入速度。
Q:忘記按下按鈕結束計時怎麼辦?
如果忘記再按一次計時按鈕,可以直接修改累積分鐘數,雖然不太準確,但多少有個紀錄。