NOTION

Notion Formulas 怎麼用?2.0 基礎公式結構與實用範例完整教學

本文資訊以 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() 是「目前計算時間點的時間戳」,不像日期屬性那樣是固定的日期。適合用於計算「距現在還有幾天」這類動態計算。