公式簡介

在此說明文件中

你可以在 Notion 資料庫中新增公式屬性,以根據其他屬性,來進行各種計算和函數運算。你可以使用公式來操作現有資料,並計算出許多有用的數值 🔮


Notion 公式可以使用您現有的資料庫屬性、內建功能與函數來執行實用的計算。

讓我們看看幾種使用公式的不同方式。如果您準備好開始建立自己的公式,請跳至我們關於建立公式的指示 下方 →

範例 1:專案管理

在此範例中,我們將使用三個公式來追蹤專案進度。

您可以透過將 此頁面 建立副本到您的工作空間,來探索並試用此範例的公式設定!

目標

屬性名稱

公式

使用的函數與內建功能

將專案的到期日設為開始日期後的兩週

到期日

dateAdd(Start Date, 2, \"week\")

dateAdd() 可將時間加至日期。單位引數可以是下列其中之一:yearsquartersmonthsweeksdayshoursminutes。在此例中,我們將使用 weeks

若到期日已過 狀態不為 完成,則將專案標記為逾期。

若到期日已過 狀態不為 完成,則以粗體紅字將專案標記為逾期。

逾期?

if(and(now() > Due Date, Status != "Done"), "Overdue", "")

if(and(now() > Due Date, Status != "Done"), style("Overdue", "red", "b"), "")

if() 會在條件為真時傳回第一個值;否則傳回第二個值。這能實現條件式結果。

and() 是一個邏輯運算子。這能評估多個因素是否皆為真。

now() 會傳回目前的日期與時間。這能評估相較於專案到期日,我們目前的進度為何。

> 是一個比較運算子。這能比較到期日大於目前日期的條件。

!= 是一個比較運算子。這能定義狀態不等於 完成 的條件。

style() 可為文字新增樣式和顏色。有效的格式化樣式包括 b(粗體)、u(底線)、i(斜體)、c(代碼)或 s(刪除線)。有效的顏色為 gray(灰色)、brown(棕色)、orange(橘色)、yellow(黃色)、green(綠色)、blue(藍色)、purple(紫色)、pink(粉紅色)和 red(紅色)。將 _background 新增至顏色即可設定背景顏色。在此範例中,我們將套用boldred

顯示與專案相關聯的任務數量

剩餘任務

Tasks.length()

length() 會傳回文字或清單值的長度。這可用於計算剩餘任務的數量。

範例 2:專案腦力激盪

在此範例中,我們將使用兩個公式來進行專案構想腦力激盪、計算每個構想的優先順序分數,並計算每個專案獲得的按讚數。

您可以透過將 此頁面 建立副本到您的工作空間,來探索並試用此範例的公式設定!若要查看使用 RICE 框架的另一個設定,請參考此 範本

目標

屬性名稱

公式

根據觸及率 (Reach)、影響力 (Impact)、信心指數 (Confidence) 和努力程度 (Effort) (RICE) 的分數,計算優先順序分數

分數 (RICE)

Reach * Impact * Confidence / Effort

當有人點擊按讚按鈕時,將其計入總票數,並將其名稱新增至資料庫頁面

總票數

length(Upvoted by)

(進階)範例 3:任務管理自動化

在此範例中,我們將在資料庫 自動化(另一種資料庫屬性)中使用一些公式,以便在所有子任務皆完成時,將父任務標記為 完成,從而更輕鬆地管理專案和任務。

資料庫自動化具有觸發條件和動作,並會根據這些觸發條件採取動作。公式可讓您定義變數,然後在動作中使用這些變數。

您可以透過將 此頁面 建立副本到您的工作空間,來探索並試用此範例的公式設定!

目標

如何建立

使用的函數與內建功能

每次將任務設定為 完成 時,即觸發自動化

觸發:當狀態設定為 完成

-

透過尋找與觸發自動化的任務相關的第一個頁面來定義父任務

動作 1: 定義 父任務變數

公式:Trigger page.Parent item.first()

Trigger page 參照的是觸發此自動化的資料庫頁面,而 . 則讓您能夠存取與該頁面相關聯的屬性。

Parent item 會傳回該屬性的內容,在此案例中為相關頁面的列表。

Parent item 屬性套用 .first() 函數,會傳回該列表中的 第一個 相關頁面。

如果父任務有子任務,請驗證其所有子任務的狀態是否皆為 完成。如果父任務沒有子任務,則傳回 false

動作 2: 定義 所有子任務皆完成? 變數

公式:父任務.子項目 ? 父任務.子項目.every(current.Status == \"完成\") : false

三元運算子 X ? Y : Z 是一種簡短的條件運算式,其意義為:如果 條件 X 為真,則傳回 Y;否則,則傳回 Z。它是 if() 陳述式的簡潔替代方案。

.every() 會檢查列表中的每一項是否皆符合條件。在此函數中,您可以使用關鍵字 current 來參照正在評估的列。在此案例中,條件 current.Status == \"完成\" 會檢查目前頁面的狀態屬性是否設為 完成。如果是,它將傳回 true;否則將傳回 false

如果所有子任務皆為 完成,將父任務的狀態設為 完成。若否,則保留父任務現有的狀態。

動作 3: 編輯 狀態 屬性

公式:All subtasks done? ? "完成" : 父任務.狀態

同樣地,此處使用三元運算子來檢查所有子任務是否已完成。如果已完成,自動化將會把父任務的狀態設為 完成;若否,則會保持父任務的狀態不變。

更多公式靈感

在 Notion 中,您可以透過幾種不同的方式使用公式:

若要建立公式資料庫屬性:

  1. 選取資料庫頂端的滑桿圖示 → 編輯屬性新增屬性

  2. 選取 公式

  3. 您可以視需要為屬性命名。

  4. 選取 編輯公式

一旦您在資料庫或按鈕中建立了公式,就能在公式編輯器中建立並編輯該公式,其外觀如下:

頂端的欄位是您輸入和編輯公式的地方。當您在編輯器頂端撰寫公式時,編輯器會告知您缺少什麼,或是公式為了回傳數值需要什麼。

編輯器左側的面板顯示了您可以在公式中使用的元素,換句話說,就是您可以使用的屬性、內建項目和函數。

編輯器右側的面板會在您將游標懸停於左側面板的元素上時,定義這些公式元素。它也會提供您如何使用這些元素的範例,以及它們應有的結構。

如果你是從資料庫列中開啟公式編輯器,就會見到該列公式結果的即時預覽。

公式有問題嗎?請參閱這篇文章 →,了解常見的公式錯誤以及如何進行疑難排解。

提示:此功能僅在商業版和企業版中提供。

知道您想要公式執行什麼功能,但不確定該如何建立嗎?想要對現有的公式進行一些調整嗎?在公式中看到錯誤,但不知道如何修正嗎?Notion AI 可以提供協助。

當您進入公式編輯器時,會看到一個包含 Notion AI 圖示的欄位。點擊此欄位並告訴 Notion AI 您希望公式執行什麼功能,或是詢問有關公式的問題以更深入了解。

以下是您可以提供給 Notion AI 的一些(文字)指令範例:

  • 「將標題屬性轉換為 URL 網址後綴。」

  • 「如果到期日已過,則回傳 ⚠️。」

  • 「將日期屬性增加一天,並將輸出設為綠色且粗體。」

  • 「回傳關聯資料庫中的日期屬性」(Notion AI 也了解您的關聯屬性!)

  • 「將此公式的輸出設為斜體。」

  • 「修正此公式中的錯誤。」

  • 「讓這個公式處理邊緣案例。」(例如,Notion AI 可以加入 if 陳述式,這樣當欄位為空時,公式就不會失敗。)

  • 「這個公式有什麼作用?」

輸入(文字)指令後,Notion AI 將會產生公式或回應您關於該公式的查詢。您也可以查看公式輸出的預覽,並切換開啟 顯示類型 來查看輸出類型(例如文字),確保一切看起來都符合您的需求。您可以還原 Notion AI 的變更、提供進一步的(文字)指令,或給予讚或倒讚,讓我們知道它的表現如何。

使用 Notion AI 建立與編輯公式時,請注意 Notion AI 目前不支援以下項目:

  • 迭代邏輯(例如 for 迴圈)。

  • 需要 random() 函數的隨機產生,而 Notion 公式中並沒有此函數。像「產生 1 到 10 之間的隨機數」這樣的(文字)指令將無法運作。

  • 記憶先前的(文字)指令。

Notion AI 可以協助您處理公式屬性,以及 按鈕資料庫按鈕資料庫自動化 內的公式。

公式可以透過結合以下項目來建立:

  • 屬性。

  • 內建功能,或是用於設定特定計算的運算子與布林屬性。一些範例包括 +(加)、falseor

  • 函數,或是公式為傳回特定輸出所能採取的動作。一些範例包括 replacesumsort

公式中可用的內建功能與函數完整清單請見此處 →


給予回饋

這項資源有用嗎?


Powered by Fruition