在 Notion 的 Database(資料庫)中,你可以新增 formula(公式)property(屬性),該 properties (屬性)可以使你基於其他 properties (屬性)進行各種運算和函數。正如在 Excel 或者 Google Sheet 中那樣,你可以在 Notion 中使用公式求和以及獲取其他許多有用的值。⚗️
我們知道這部分會很複雜,所以需要我們幫忙時,不要猶豫,告訴我們。
公式術語
書寫公式時最最艱難的就是理解所有的術語了!😅 以下是你在 Notion 中使用公式時最常見的詞語以及它們的含義:
- Function(函數):一組輸入值與一組可能的輸出值之間的關係,每個輸入僅與唯一的輸出相關聯。
- Syntax(語法):指的是公式中能夠返回正確值的字母和術語的順序。
- Argument(參數):指的是函數中的任意輸入值,如一個屬性。
- String(字串):通常指的是文字(即一串相連的文字)。公式中,字串往往被包在引號中。
- Substring(子字串)指的是一個長字串中的一段。「No」就是「Notion」的子字串。
- Boolean(布林):布林非 true(真)即 false(假)。
- Concatenate(連接):連接兩個字串。
- 例:
concat("add", "text")
會變成"addtext"
。
操作中的術語
一個可以把上述術語串在一起的例子:
concat("add", "text")
concat
就是函數。它對其圓括號中的輸入值應用特定的計算或者操作。
"add"
和"text"
就是函數的參數。
- 每個參數都是文字類型(或者是字串)。
- 函數可以使用各種類型不同的參數,例如 checkbox(核取方塊)(也就是布林)、數字或者日期。
- 函數的語法要求用引號包圍字串,而其參數則需要用圓括號包圍。
寫一個公式
- 首先,在 Database(資料庫)中添加一個新屬性並命名,從
Property Type(屬性類型)
選單中選擇Formula(公式)
。
- 為了讓公式對屬性進行操作,你需要輸入一個函數,這個函數會用到該屬性。
- 屬性的操作很像公式中的變數。使用你給它起的名字就可以操作它。
- 你可以像輸入數字計算器一樣輸入函數(還記得嗎?)。記得用圓括號和引號包圍屬性!
- 例子:與 21 歲差多少年?
- 假設 Database(資料庫)中有一個數字類型的屬性,名為
Age
,而你想要用公式屬性顯示人的年齡與 21 歲的差距。 - 輸入
21 - prop("Age")
即可返回 21 減去資料庫中每個人的年齡屬性值的結果。

公式選單
當你編輯一個公式屬性時,公式視窗就會自動彈出。該視窗的左側選單包含以下部分:
Properties
:列出資料庫中用到的所有屬性。按一下即可用對應的格式插入到公式中。
Constants
:常用的常數,比如圓周率(Pi)。按一下即可新增到公式中。
Operators
:可以運行的簡單運算。左側的圖示顯示了它支援的屬性類型。例如,Subtraction(減法)和 Addition(加法)只支持數字類型。
Functions
:可以在 Notion 中運行的更複雜的、預先定義的公式。同樣,左側的圖示顯示了它支持的屬性類型。
- 在視窗頂部的文字框輸入文字,即可搜尋到你需要的以上內容。
- 你還可以用方向鍵上下捲動來查看列表。
小技巧:將游標懸浮在側邊欄中的列表項上,即可看到完整的釋義,詳細說明瞭使用方法和範例。

- 例子:距離期限的天數
- 有一個任務資料庫,列出了對應的期限。我們的目標是計算出當前日期距離期限還剩多少天。
- 對於資料庫中的每個任務,用日期屬性設定一個期限。
- 然後,新增一個新屬性,並從
Property Type(屬性類型)
選單中選擇Formula
。將它命名為「剩餘天數」。 - 在表格中,按一下公式列中的任意儲存格,打開編輯公式視窗。

- 在文字框中,輸入
date
檢索出與日期相關的命令。dateBetween()
看起來有用 —— 它會以我們需要的時間單位返回兩個日期之間的時間。

- 根據此函數的介紹,你需要給定兩個日期以及一些文字:截止日期、當前日期、需要的日期單位(years、months、days,等等)。

- 在公式側邊欄頂部的
Properties
類目下點擊截止日期的屬性名,或者直接輸入prop("Deadline")
將截止日期插入到dateBetween()
函數中。
.gif?table=block&id=bb150053-5b5d-4f71-b72c-3657f44f7c98&t=bb150053-5b5d-4f71-b72c-3657f44f7c98&width=768&cache=v2)
- 現在,我們的公式長這樣:
dateBetween(prop("Deadline"))
。讓我們來找找如何獲取當前日期。now()
看起來有用,因為它會傳回目前日期。
- 按如下步驟完成函數:
- 首先,新增一個逗號,表示我們想要得出截止日期和當前日期的時間差:
dateBetween(prop("Deadline"), now())
- 然後,根據函數的說明,定義我們想要的時間單位:
dateBetween(prop("Deadline"), now(), "days")
- 最後,點擊
Done
,對資料庫應用此函數。 - 大功告成!現在你就能知道距離截止日期還剩多少天了 🙌

常用範例
我們匯集了一些常用的公式範例,並附上書寫方法 👇
自動勾選核取方塊
你可以寫一個公式,讓資料庫中的核取方塊根據其他屬性值自動判斷勾選狀態。
- 目標:如果
Priority
為空或者包含「Important」,則勾選核取方塊。 Copy of Demo - 公式:
or(empty(prop("Priority")), prop("Priority") == "Important")
Demo
Name
Priority
Has Value?
此公式對資料庫中的
Select
屬性同樣適用。在本例中,如果 Select 屬性的值為「Option 1」,則核取方塊為選中狀態。equal(prop("Select"), "Option 1")
Demo
日期計算
使用資料庫中的日期屬性,你可以計算各種時間範圍。
Demo
Name
Start Date
End Date
Years Employed
Years Remaining
Formatted Text
- 目標:在「Years Employed」下面顯示 Doug 到目前為止被雇用的年數。
- 公式:
dateBetween(now(), prop("Start Date"), "years")
- 目標:在「Years Remaining」下面顯示 Doug 的剩餘工作年限。
- 公式:
dateBetween(prop("End Date"), now(), "years")
- 目標:在「Formatted Text」下面,用年和月顯示 Doug 的剩餘工作時間。
- 公式:
concat(format(prop("Years Employed")), " years, ", format(dateBetween(prop("End Date"), now(), "months")), " months")
四捨五入公式
這些公式可以用不同的方法來四捨五入。
- 捨入為整數:用
round()
包圍你的公式 - 例子:
round(prop("One)" / prop("Two"))
- 保留一位小數:用
round(*10)/10
包圍你的公式 - 例子:
round(prop("One") / prop("Two") * 10) / 10
- 保留兩位小數:用
round(*100)/100
包圍你的公式 - 例子:
round(prop("One") / prop("Two") * 100) / 100
在日期中新增星期幾
獲取日期並在公式屬性中自動識別星期幾。
formatDate(prop("Date"), "dddd, MMMM D, YYYY")
過期提醒
如果已經超過期限,則自動勾選。對個人 CRM 很有幫助,你可以設定一個你想要聯繫某人的日期,然後反複執行。
prop("Due Date") < now()
小技巧:我們會持續從團隊和社區收集有用的公式。請保持關注!如果你有想要分享的公式,請發送到 [email protected].。
故障排除
在使用公式時,你可能會遇到一些報錯訊息:
Type mismatch: prop("Number") is not a Text
- 這意味著你在使用的公式只支持文字屬性。
- 應對辦法是,嘗試用
format()
包圍數字屬性。 - 例如:
prop("Number") + prop("Text")
會報錯。 可以改為:format(prop("Number")) + prop("Text")
Too few arguments in function if
- 這意味著你可能漏寫了「else」語句。
- 嘗試在公式末尾用
, "")
的方式新增 「else empty」 語句。 - 例子:
if(prop("1") == "this", "that")
會報錯。
可以改為:
if(prop("1") == "this", "that", "")
常見問題:
有沒有辦法在看板裡用 Group By(以……分組)
給關聯或公式屬性分組?
現在還不行。😓但這是個不錯的使用案例,未來我們絕對會支持這個功能。