Notion Formula 2.0 § 基礎篇_1

更新於 發佈於 閱讀時間約 11 分鐘

前言

從我去年寫了一篇簡單介紹Notion Formula 2.0 的文章,已經過去一年了!~~但我發現,在這一年中,中文教學資源似乎比預期少一些。經過思考,我認為原因可能有以下幾點:

  1. 2.0 的函數如 lets() 等提高了靈活性,但對於不熟悉程式語言的使用者來說,學習曲線較陡。
  2. 對程序員來說,Notion 公式相對簡單,除非有特別需求,否則不會花時間製作教學文件。
  3. 現有功能已能滿足大部分工作流程,只有在追求高效模板時才會需要進一步修改公式。
  4. 若你有購買 Notion AI 的服務,Notion AI 也能協助撰寫複雜的公式,減少了學習門檻。

儘管存在一些挑戰,網絡上還是有許多酷炫的模板可以參考!那麼,這些模板到底是怎麼做到的呢?我想不如整理一下相關資源,除了讓我再次精進以外,也提供中文的資料讓大家比較容易上手✨

另外,為了方便不熟悉英文的朋友,我會盡量將欄位名稱以中文命名。(不過個人偏好是使用英文命名😊,大家在練習或建置自己的環境時可以依據習慣來選擇。)

學習環境建置

準備兩個資料庫,此處命名為:輸入資料、輸出結果。(詳細的例題可以參考圖片。)

  • 資料庫_輸入資料欄位(屬性與名稱):
    • Aa Name
    • Relation:輸出結果
    • Date:日期
    • Number:數字
    • Status:階段
    • Formula:按照需求命名…
  • 資料庫_輸出結果欄位(屬性與名稱):
    • Aa Name
    • Relation:輸入資料
    • Formula:按照需求命名…

函數

Dot Notation 點符號

這個「點符號」是一個很重要的功能,以點符號的撰寫模式是相對比較簡潔的方式,但這與每個人的編寫習慣有關,目前 Notion 是兩種撰寫模式都支援。請參考下面的範例:

// 兩者皆等於 4
length("text") == "text".length()

// 今天的日期,如:2024-09-18,顯示18
date(now()) == now().date()

// 增加一年
dateAdd(now(), 31, "years") == now().dateAdd(1, "years")

Map()

函數map()傳回的資料類型是「列表」。我們可以在資料庫_輸出結果日期顯示中,先嘗試匹配EX1、EX2、EX3、EX4、EX5的日期:

map(prop("輸入資料"), current.prop("日期"))
raw-image

Sort()

直接匹配顯示資料後,會發現資料內容不一定是按序排列的。這時可以搭配sort()來將資料排列,就有日期排序的效果。將資料進行有序排列後,資料變得更有意義,如可以指定要顯示的元素。

// 升序排列
map(prop("輸入資料"), current.prop("日期")).sort()

// 降序排列
map(prop("輸入資料"), current.prop("日期")).sort().reverse()

// 排列後,選擇第一個元素,以範例為例,顯示 September 3, 2024
map(prop("輸入資料"), current.prop("日期")).sort().first()

// 排列後,選擇最後個元素,以範例為例,顯示 September 28, 2024
map(prop("輸入資料"), current.prop("日期")).sort().last()
raw-image

At()

函數at()可以回傳列表中指定索引的值。

// 我要找日期排序後,第三個日期。
map(prop("輸入資料"), current.prop("日期")).sort().at(2)
raw-image
列表中的元素與索引的關係如圖。

列表中的元素與索引的關係如圖。

Filter()

使用filter()函數能傳回清單中條件為真的值。

舉個例子,若今天為09-19,那只有EX2、EX4的日期是在未來,就會顯示EX2、EX4的資料。

// 篩選出未來日期的項目Name,結果顯示 EX2,EX4
prop("輸入資料").filter(current.prop("日期") > now())

// 篩選出未來日期的項目的日期,結果顯示 September 28, 2024,September 23, 2024
map(prop("輸入資料").filter(current.prop("日期") > now()), current.prop("日期"))
raw-image

同理,我們也可以針對項目的進展,做出對應的統計數據。如要計算已經完成了幾個項目。這個可以做出如Rollup的統計數據效果。

// 計算在階段欄位中,顯示已完成的項目數量
prop("輸入資料").filter(current.prop("階段") == "已完成").length()
raw-image

Empty()

若值為0””[],回傳True

// 空值回傳true
empty() == true

//判斷不是空值,兩種寫法
!empty()
not empty()

// 匹配數字欄位不為空值的資料項目
prop("輸入資料").filter(!empty(current.prop("數字")))
raw-image

Ifs()

這是多個嵌套if()的替代方案,編寫過程更為簡潔,且閱覽時會更容易閱讀。

例題:假設數字欄位為空值則顯示⚪,假設數字小於 50 則顯示🔴,假設數字介於 50~79 則顯示🟡,假設數字 > 80 則顯示🟢。

// 判斷式_方法一:使用 if()
if(
empty(prop("數字")), "⚪",
if(prop("數字") < 50, "🔴",
if(prop("數字") < 80, "🟡",
if(prop("數字") <= 100,"🟢",
""
)
)
)
)

// 判斷式_方法二:使用 ifs()
ifs(
empty(prop("數字")), "⚪",
prop("數字") < 50, "🔴",
prop("數字") < 80, "🟡",
prop("數字") <= 100, "🟢",
""
)
raw-image

Style()

這是一個可以讓模板能更繽紛顯示的函數,有以下幾種不同的參數可以設置:

  • 文字樣式:粗體(b)、底線(u)、斜體(i)、刪除線(s)、程式碼(c)。
  • 文字顏色:graybrownorangeyellowgreenbluepurplepinkred
  • 背景顏色:顏色名稱_background

例題:結合上面ifs()的命題,可以根據判斷式加上數字的顏色。

ifs(
empty(prop("數字")), "⚪",
prop("數字") < 50, "🔴 " + format(prop("數字")).style("red"),
prop("數字") < 80, "🟡 " + format(prop("數字")).style("yellow"),
prop("數字") <= 100, "🟢 " + format(prop("數字")).style("green"),
""
)
raw-image

Mean()、Sum()、Length()

其他的運算功能函數使用方式都差不多,這裡列舉一個很常見,但也很容易忽略的一個小細節。當有空值的時候,直接使用mean()計算的平均數,可能與你預想的不太一樣,mean()會忽略空值,因此如果你要計算包含空值的平均數,請多寫幾個字吧~~

// 使用 mean() 計算平均數,以範例為例得值為 72.5
map(prop("輸入資料"), current.prop("數字")).mean()


// 使用 sum()、length() 計算平均數,以範例為例得值為 58
map(prop("輸入資料"), current.prop("數字")).sum()
/ map(prop("輸入資料"), current.prop("數字")).length()
raw-image

Let()

函數let()是一個自訂名稱及運算的功能函數,幫助我們在編寫公式時,不會出現長長一串、不易閱讀的程式碼。

例題:我們以範例中的數字欄位作為價格,一般含稅價格要加上稅金,以我們所在地為例,目前是 5%,那麼,我們就命名新的變數為含稅價格

// 在資料庫_輸入資料中,設置一個含稅價格的欄位
let(
含稅價格, prop("數字") * 1.05,
含稅價格
)
raw-image

以這個例子比較難體現let()函數的強大,往後我們可以在不同的範例中看到let()函數的應用。

範例及其他資源

範例頁面

Notion 函數指南

小小心得

這篇筆記雖然沒有完全涵蓋所有的新函數,但提到了幾個關鍵的用法,或許能提供你一些想法~之後會陸續分享幾篇,接下來我會陸續分享更多使用 2.0 公式的應用學習筆記,幫助你優化模板和公式。如果覺得這些內容對你有幫助,別忘了幫我點個 ❤️、分享這篇文章,或者請我喝杯咖啡☕,我都會非常感謝!😊

參考資料



留言
avatar-img
留言分享你的想法!
Chloe-avatar-img
發文者
2024/10/08
Notion Formula 2.0 § 基礎篇_2提及了這篇文章,趕快過去看看吧!
avatar-img
Chloe小窩
184會員
124內容數
小小的細縫裡,夢想的小苗也會萌芽。 我想在餘生中,體會生命的感動和奧秘。 透過仔細觀察,將發現世界不同的美好。 歡迎你來到 ~ ♡ Chloe 的小世界 ♡
Chloe小窩的其他內容
2025/04/11
📘 有系統學習,才能走得更深、更穩。現在就開始,打造你的個人知識地圖吧!
Thumbnail
2025/04/11
📘 有系統學習,才能走得更深、更穩。現在就開始,打造你的個人知識地圖吧!
Thumbnail
2025/03/28
五種利用 Notion Formula 2.0 製作習慣追蹤熱力圖的方法,並針對每種方式說明資料庫與欄位的設置、公式、注意事項等。
Thumbnail
2025/03/28
五種利用 Notion Formula 2.0 製作習慣追蹤熱力圖的方法,並針對每種方式說明資料庫與欄位的設置、公式、注意事項等。
Thumbnail
2025/02/20
如何使用 Notion Formula 2.0 製作數據視覺化圖表的範例和練習,包含格子柱狀圖、直方圖、數值追蹤圖(似折線圖)和圓餅圖。
Thumbnail
2025/02/20
如何使用 Notion Formula 2.0 製作數據視覺化圖表的範例和練習,包含格子柱狀圖、直方圖、數值追蹤圖(似折線圖)和圓餅圖。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
如何使用 Notion Formula 2.0 製作數據視覺化圖表的範例和練習,包含格子柱狀圖、直方圖、數值追蹤圖(似折線圖)和圓餅圖。
Thumbnail
如何使用 Notion Formula 2.0 製作數據視覺化圖表的範例和練習,包含格子柱狀圖、直方圖、數值追蹤圖(似折線圖)和圓餅圖。
Thumbnail
透過 Formula 2.0 用 lets() 函數,編寫進度條的公式。
Thumbnail
透過 Formula 2.0 用 lets() 函數,編寫進度條的公式。
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
Notion 是個功能強大的筆記和工作管理工具,可以根據不同的需求進行自定義。其中,使用 Formula 函數可以實現各種自動化和更多的數據操作。本篇文章中,我將向你展示如何使用 Formula 函數在 Notion 中顯示星期幾,在哪些情境下這個功能非常有用,提供實際演練,以及延伸應用。看下去囉。
Thumbnail
Notion 是個功能強大的筆記和工作管理工具,可以根據不同的需求進行自定義。其中,使用 Formula 函數可以實現各種自動化和更多的數據操作。本篇文章中,我將向你展示如何使用 Formula 函數在 Notion 中顯示星期幾,在哪些情境下這個功能非常有用,提供實際演練,以及延伸應用。看下去囉。
Thumbnail
方格子平台盡量不要寫太多數學表達比較好。這個平台不是為科學寫作設計的。最好的方式應該是詳細文件寫在別的地方,再連結回來。把這裡當成社群經營。 真的要的話,可以(也只能)用 unicode 形式。
Thumbnail
方格子平台盡量不要寫太多數學表達比較好。這個平台不是為科學寫作設計的。最好的方式應該是詳細文件寫在別的地方,再連結回來。把這裡當成社群經營。 真的要的話,可以(也只能)用 unicode 形式。
Thumbnail
網友提問的需求,要將左邊的表個項目的數量,變成右邊的表格,該如何快速完成呢? 這個需求可以用函數來處理,不過不同版本的函數處理方式不同,除了函數之外用POWER QUERY也是很快的哦。 POWER QUERY教學連結 全版本通用 全版本通用需要輔助欄協助才能做到 C1=0 C2=B2+
Thumbnail
網友提問的需求,要將左邊的表個項目的數量,變成右邊的表格,該如何快速完成呢? 這個需求可以用函數來處理,不過不同版本的函數處理方式不同,除了函數之外用POWER QUERY也是很快的哦。 POWER QUERY教學連結 全版本通用 全版本通用需要輔助欄協助才能做到 C1=0 C2=B2+
Thumbnail
高效生活,幫助你找回更多自己的時間 哈囉,這裡是 AL 的 Googlesheet 學習筆記 本系列文章,會帶你認識各種函數,學習並應用於日常,加速生活與工作、提升效率 今天要介紹的函數是 ARRAYFORMULA
Thumbnail
高效生活,幫助你找回更多自己的時間 哈囉,這裡是 AL 的 Googlesheet 學習筆記 本系列文章,會帶你認識各種函數,學習並應用於日常,加速生活與工作、提升效率 今天要介紹的函數是 ARRAYFORMULA
Thumbnail
  在計算數字時我們要先搞懂運算符號代表的涵義,Python裡面的符號跟我們認知的不會有太大的差別,但是有一些代表不一樣的意思,就必須搞懂才不會在寫程式時,程式碼的重複性太高,會導致日後的維修性降低。
Thumbnail
  在計算數字時我們要先搞懂運算符號代表的涵義,Python裡面的符號跟我們認知的不會有太大的差別,但是有一些代表不一樣的意思,就必須搞懂才不會在寫程式時,程式碼的重複性太高,會導致日後的維修性降低。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News