Intro to formulas

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

You can use formulas in database automations, database buttons, and buttons to streamline your workflows.

如需有關公式及其使用方法的完整教學導覽,請參閱以下資源:
若要開始編寫公式,請先在 Notion 資料庫中新增公式屬性:
- 按一下資料庫中的 - •••選單
- 選擇 - 屬性,然後按一下- + 加入屬性
- 選擇 - 公式
- 按一下 - 編輯,開始編寫公式
編寫公式

公式 2.0
我們最近更新了公式語言!你現有的公式會針對此更新自動改版,且作用會和先前一樣。
如需更多資訊,請查閱我們的指南:
如果你先前有編寫程式的經驗,Notion 的公式語法可能就會看起來很熟悉!你得要選擇 函數(這會完成不同的任務)和 輸入(要操作的資料)。接著系統就會計算 輸出資料(結果),並將其顯示在資料庫中每一列的新公式屬性中。
例如,在此公式中:dateSubtract(prop("日期"), 14, "天")
- 函數為 - dateSubtract()
- dateSubtract()將計算日期、數字 和單位文字,其可以是- 「天」或- 「小時」等。
- 輸入為 - 日期(屬性)、- 14(數字)和- 「天」(時間單位)。
- 輸出資料是代表你 - 日期屬性前 14 天的日期

公式編輯器
Notion 的公式編輯器包含多項輔助功能,協助你編寫公式。
- 編輯器會根據公式內容,自動提供函數或屬性的建議。 - 你可以使用 - 上/- 下鍵在此建議面板中移動,並按下- Enter來接受建議。
 
- 當公式超過編輯器的寬度時,較長的公式便會自動換行;但你也可以使用 - Shift+- Enter來建立新行!- 若要在行間移動,可以使用 - alt/option + 上/下鍵。
 
- 如果你是從資料庫列中開啟公式編輯器,就會見到該列公式結果的即時預覽。 - 請注意,結果預覽並不會顯示換行符號,但你可以在公式中使用 - "\n"來新增換行符,例如:- "哈囉" + "\n" + "大家好"
 
- 編輯器會顯示錯誤並強調錯誤代碼,以便找出問題來源。 
公式可以操作並傳回不同的資料類型。Notion 支援其他多種屬性類型,但會轉換其資料類型。
文字
- 例如, - 「哈囉大家好」
數字
- 例如, - 1, -2.5
- 可以使用公式屬性的格式化選項(如百分比、貨幣,或者使用圓圈或條狀圖)來顯示。 
日期
- 顯示為包含時間的日期(如 2023 年 8 月 29 日 1:33 PM),且可以使用 - dateFormat()函數將其重新格式化為文字。
- 日期可以是能使用 - dateRange()函數來構建的日期範圍。
- 日期不能包含秒數或毫秒數。 
人員
- You can use - name()or- email()to retrieve data off any People types.
- 以照片和人員名稱來顯示。 
布林屬性
- 可以是 - true或- false。
- 以已填或未填的核取方塊來顯示。 
頁面
- 代表 Notion 頁面,不同頁面間可能有關聯關係。 
- 你可以在任何 Notion 頁面上使用 - .來擷取其屬性!
- 透過頁面圖示顯示為複合式頁面連結。 
Lists(or arrays)
- Lists can hold items of any type, including more lists. Multi-select, People, Relation, and most Rollup properties will return list values. 
- 你可以使用像 - at()、- filter()和- map()的列表函數,來操作列表。
- Use the - includes()function to check whether these values contain a specific value instead of equality checks.- Example: - prop("Tags").includes("Movie")
 
- 列表項目針對文字、數字和日期,會以逗號分隔方式顯示。針對人員、核取方塊和頁面,則會以空格分隔。 
空白
- 空值不會顯示在公式屬性的輸出資料中,但可以在計算中使用。 
- 你可以使用 - empty()函數,查看任何數值的空值。
- 例如, - toNumber("")或- parseDate("Not a date")會傳回- 空。
