目錄
本文資訊以 2025-2026 年為準,Notion Formulas 功能可能隨版本更新變動,建議以官方文件為準。
Notion Formulas 是建立在資料庫屬性上的動態計算功能,能針對同一條記錄的不同欄位進行自動化運算與狀態顯示。許多人在使用 Notion 處理專案管理或日常記帳時,操作資料庫一陣子後,往往會遇到想要讓欄位根據特定條件自動顯示不同符號、或是自動計算時間差距的需求,這時候就需要啟動公式功能。這篇教學會從最基礎的公式結構開始拆解,一路對接至 Formulas 2.0 最核心的新增語法,並提供幾個能直接複製套用到專案資料庫的實用範例,讓原本繁瑣的手動更新變成全自動的儀表板。
Notion Formulas 是什麼?與 Excel 公式的核心差異說明
Notion Formulas 是建立在資料庫屬性上的動態計算層。與Excel 公式最大的不同在於:Excel 公式針對格內的在不同儲存格的資料進行計算,Notion Formulas 則是針對同一條記錄的不同屬性進行計算。
以一個任務資料庫為例:每一條任務都有「截止日」和「完成狀態」屬性。透過 Formulas,可以自動顯示「從今天到截止日還有建幾天」、或對接近截止的任務自動標色——這些都是純手動設定無法做到的。
Notion Formulas 2.0 有哪些改變?新舊版本四大差異整理
- 支援多行編輯,讓長公式可以加入縮排與註釋
- 公式輸出類型扩展,支援頁面、日期、人员和清單類型輸出(舊版僅支援文字、數字、Checkbox)
- 新增
ifs()(多条件判斷)、let()(變數宣告)等字式 - 屬性參照方式改瀏而易讀(直接展示屬性名稱 Token)
撰寫第一個 Notion 公式:新手必學的三大實用入門公式
Notion 公式範例①|使用 dateBetween() 計算截止日剩餘天數
假設資料庫有一個「截止日」 Date 屬性:
dateBetween(prop("截止日"), now(), "days")
語法:dateBetween(目標日期, 起始日期, "单位")
計算截止日到今天(now())相差幾天。輸出為正數代表尚在截止日前,負數代表已過了幾天。
Notion 公式範例②|使用 if() 自動標註任務完成狀態
假設資料庫有「完成狀態」 Select 屬性(值為「Done」或其他):
if(
prop("完成狀態") == "Done",
"✅ 已完成",
"🔴 進行中"
)
語法:if(條件, 歸真時輸出, 歸假時輸出)
公式編輯器支援多行輸入,卡未縮排讓公式更易讀。字串小心不要誤用「引號」——Notion 僅接受直擺引號(" ")。
Notion 公式範例③|使用 ifs() 處理多條件進度自動化
ifs() 是 Formulas 2.0 新增的語法,可取代嵌套的 if() 層層帶入,讓多條件的公式讀起來更直覺。
範例:根據副剩天數自動顯示符號,讓任務一眼辨識緊急程度:
ifs(
dateBetween(prop("截止日"), now(), "days") < 0,
"🔴 已過期",
dateBetween(prop("截止日"), now(), "days") <= 3,
"⚠️ 緊急",
dateBetween(prop("截止日"), now(), "days") <= 7,
"👂 即將截止",
"✅ 未到期"
)
語法:ifs(條件1, 輸出1, 條件2, 輸出2, ..., 預設輸出)
Notion 進階公式④|使用 format() 將數字轉為文字拼接
Notion 不允許直接將數字與字串拼接,需要先用 format() 轉換類型:
"這條任務還有 " + format(dateBetween(prop("截止日"), now(), "days")) + " 天"
常見新手錯誤:直接試圖用 + 連接數字與字串,會出現類型錯誤。解決方式:先用 format() 將數字轉為文字再連接。
Notion 進階公式⑤|使用 let() 宣告變數避免重複計算
let() 是 Formulas 2.0 內特別食用的語法,可以先給一個中間計算結果命名,後續公式中重複使用而不需要重複寫同一段計算。
let(
daysLeft,
dateBetween(prop("截止日"), now(), "days"),
ifs(
daysLeft < 0, "🔴 已遁期 " + format(abs(daysLeft)) + " 天",
daysLeft == 0, "⚠️ 今天是截止日",
"✅ 還有 " + format(daysLeft) + " 天"
)
)
此公式先用 let() 將剩下天數宣告為 daysLeft,後續公式直接用來更易讀。若不用 let(),裡面每個分支都得重寫一次 dateBetween(...) 。
Notion 進階公式⑥|結合 filter() 與 length() 計算子任務完成占比
設計集中小組的進度一覽,展示對應標籤的完成項目數與技術復盤
let(
completed,
filter(prop("子任務"), current.prop("完成") == true).length(),
let(
total, prop("子任務").length(),
if(
total == 0, "無子任務",
format(completed) + "/" + format(total) + " (" + format(round(completed / total * 100)) + "%)"
)
)
)
此公式需要確認子任務關聯屬性,為進階層級用法。即使不使用,這個範例展示了 filter()、length()、嵌套 let() 的組合使用方式。
Notion 公式無法執行?新手最常踩的五個公式錯誤與解決方法
錯誤①|屬性名稱大小寫不符「屬性名稱」≠「屬性名>稱」)
prop() 內的名稱需要與資料庫中的屬性名稱完全相符,包含大小寫和空格。前往屬性設定確認名稱再輸入。
錯誤②|彎曲引號取代直擺引號
Notion 公式僅接受直擺引號(" "),彎曲引號(“ ”)會導致公式錯誤。從部落格或 AI 輔助工具複貣公式時需特別小心。
錯誤③|數字與字串直接縴接
Notiontext 不允許將數字與字串直接縴接,需先用 format() 將數字轉成字串。
錯誤 ④|属性類型與公式運算不符
if() 條件需要 Boolean 類型。直接將 Text 屬性作為條件會出錯;需先比較,如 prop("屬性") == "指定值"。
錯誤⑤|車後斥前搭配 now() 的誤用
now() 返回的是目前時間(包含時分),若要比較日期,建護特別確認日期欄位的時間套在是否有勾選,避免時區計算差異導致副剩天數出現小數點。
Notion 公式的學習曲線其實比預期中平緩,尤其是把最常見的引號格式、資料類型轉換這幾個卡關點弄清楚之後,後續公式的邏輯編排就會變得流暢許多。熟悉了這些基本語法與新版變數宣告之後,接下來很適合進一步探索 Notion Automations 自動化觸發器,嘗試將公式運算出來的結果與自動化條件結合,讓資料庫在滿足特定剩餘天數或狀態時,能進一步觸發連動流程。
常見 FAQ
Q:Notion Formulas 2.0 跟舊版有什麼不同?
Formulas 2.0 最大的改變有四點:支援多行編輯讓公式更易讀寫、輸出類型沼展到頁面與日期、新增 ifs() 與 let() 等強大語法、屬性參照方式改瀏而易讀。舊版公式已被自動轉換,不需手動經理。
Q:if() 和 ifs() 有什麼差別?
if() 只能處理一個條件,多個條件要嵌套 if() 層層帶入,讀起來難。ifs() 可以直接寫多條件組合,讀起來直覺,有多條件建護優先使用 ifs()。
Q:Notion 公式跟 Excel 公式是一樣的嗎?
大方向一樣(都是函數和條件判斷),但語法完全不同。Notion 公式用 prop() 參照屬性,語法近似 JavaScript。Excel 公式參照傳統術在儲存格方式,兩者不可直接互用。
Q:公式顯示 Error 時怎麼辦?
檢查以下幾點:屬性名稱大小寫是否完全相符、引號是否為直擺引號、數字與字串連接前是否有加 format()、括號是否對成對。Notion 公式編輯器會在錯誤處出現紅色提示,協助定位問題。
Q:now() 跟 刪建立日期操作一樣嗎?
不完全一樣。now() 是「目前計算時間點的時間戳」,不像日期屬性那樣是固定的日期。適合用於計算「距現在還有幾天」這類動態計算。