Skip to main content
FLO.W 思流Notion 公式
寫法與排查

公式寫作規則

Notion 公式分支型別、自然語言拆解、變數命名、空值判斷和分層設計規則。

本頁用於整理複雜公式。寫長公式前先看這裡,避免後期排錯和維護變得困難。

讓所有分支儘量返回同一種型別

不推薦:

if(prop("完成"), true, "未完成")

推薦:

或:

if(prop("完成"), true, false)

尤其是在自動化、按鈕變數、日期欄位填充中,返回型別要更嚴格。

複雜公式先寫成自然語言

例如「專案健康度」先寫成:

  1. 取出全部任務。
  2. 統計完成任務數。
  3. 統計逾期未完成任務數。
  4. 計算完成率和逾期率。
  5. 根據分數輸出顏色標籤。

再翻譯成:

lets(  任務, prop("任務"),  總數, 任務.length(),  完成數, 任務.filter(current.prop("狀態") == "已完成").length(),  逾期數, 任務.filter(current.prop("狀態") != "已完成" and not(empty(current.prop("截止日期"))) and current.prop("截止日期") < today()).length(),  ...)

使用變數命名業務含義

不推薦:

lets(a, prop("任務"), b, a.length(), c, a.filter(current.prop("狀態") == "已完成").length(), c / b)

推薦:

lets(  任務列表, prop("任務"),  總數, 任務列表.length(),  完成數, 任務列表.filter(current.prop("狀態") == "已完成").length(),  if(總數 == 0, 0, 完成數 / 總數))

空值先判斷,再計算

凡是日期、關聯、成員、數字輸入,都建議先考慮是否為空。

if(empty(prop("日期")), "", formatDate(prop("日期"), "YYYY-MM-DD"))
if(empty(prop("專案")), "無專案", prop("專案").first().prop("狀態"))

大公式分層設計

對於模板系統,建議分為三類公式:

型別用途是否展示
原始輸入使用者手動填寫的資料展示
中間指標輔助計算,如完成數、逾期數、剩餘天數可隱藏
展示結果給使用者看的狀態、標籤、進度條展示

如果所有邏輯都塞進一個公式,短期看起來整潔,長期維護成本會很高。


想把這些公式直接用在任務提醒、專案進度、筆記熱力圖和統計報表裡,可以繼續了解 FLO.W 思流 Notion 模板

最後更新於