高效生活,幫助你找回更多自己的時間
前言
不知道你是否跟我一樣,Google「Notion random quotes」會一直找到這個 Notion Quotes Widget,雖然效果很棒,但我就想要看到自己存下來的詩句啊!!
於是英文苦手的我研究來研究去,終於找到了一個方法來達到想要的功能。
如上圖,在不同時間重新整理頁面,即會從你的資料庫裡挑選出一句「佳句」,意即只要你每一次打開 Notion ,就會得到一個驚喜,快來看看我是怎麼做的吧!教學
我找到的資料
首先,必須得聲明,這個方法並非我原創,但我也花了許多心思在重新構築整套核心機制。在這裡先致敬原作者,附上影片以示尊重。
我的設計邏輯
由於本人英文苦手,即便有影片教學,基本上可以說還是完全看不懂,但強迫症的個性使然,不想直接複製貼上(不懂運作機制會令我感到煩躁)
最後,我決定從最根本的核心理念開始,重新建構屬於自己能理解的「隨機機制」。
雖然內文看不懂,但我得到了兩個非常有用的資訊,我們能透過 Notion 的 Formula 函數,分別獲取「固定」與「隨機」這兩組數字。透過兩組數字的組合與運算,最終可以得到一組隨機的數值。
舉例說明
有一組固定數值為 134,除以隨機數值 172 ,結果會得到 0.774566474….,我們只要從小數點後面任意取 3 位數,像是 0.774566
474 中的 566 對於我們來說就是「隨機數值」。
因為當隨機數值跳變成 176 時,134÷173=0.761363
6364,小數點後的 3 位數取數值為 363,是不是結果就完全不一樣了?
獲得隨機數值後,我們可以透過 Rollup 功能來獲取「最大值」,並透過函數來判定哪一筆資料等同「最大值」,最終就能透過 Filter 功能來顯示唯一的結果。
流程圖

如果你完全看不懂,那也不用擔心,貼心鬼如我,畫了一張流程圖來讓你更容易理解整個機制。
以下我會說明整個流程是如何進行設定,相信只要跟著我的步驟,你一定也可以設定出屬於自己的「隨機模板」!
注意事項
為不製造理解上的困擾,因此文章會使用大量的 Notion 原生用詞,例如 Database、Formula 之類的,本人絕非「晶晶體」慣用者。
流程
步驟一、建立兩個 Database

- 建立主要 Database 來存放資料(可以是名言佳句、食譜.....之類的)
- 建立次要 Database 來獲取最大值(工具人)
步驟二、取得固定數值與隨機數值

- 固定數值
- 透過
id
來獲得一組英文&數字的字符 - 使用
replaceAll
來去掉英文字母,得到一長串數字 - 使用
substring
來取 6 位數字(想從第幾位開始取都可以) - 使用
toNumber()
將得到的結果轉化成數字 - 將上述的步驟進行組合
id().replaceAll("[a-z]").substring(0,6).toNumber()
- 透過
- 隨機數值
- 透過
now
來獲取現在的時間(函數取到的最小單位為分鐘) - 使用
timestamp
將時間轉化成數字(每分鐘會更新一次) - 使用
substring
取 5 位數後的 4 個數字(因為前面數值會是固定的,但我們需要變數) - 使用
toNumber()
將得到的結果轉化成數字 - 將上述的步驟進行組合
now().timestamp().substring(5,9).toNumber()
- 透過
步驟三、獲得「更隨機」的數字

上面我們透過了函數取得了 Notion 裡的隨機數值,接下來我們將透過組合與運算,得到一組更隨機的數值。
- 使用運算式來獲得更隨機的數值,(固定+隨機)÷隨機= 新隨機數值
- 得出來的結果可能是個位數、十位數、百位數,因此我使用
substring
來取小數點後的 3 位數(想從第幾位開始取都可以) - 使用
toNumber()
將得到的結果轉化成數字 - 將上述的步驟進行組合
substring((prop("獲取固定數值")+prop("獲取隨機數值"))/prop("獲取隨機數值"),6,9).toNumber()
步驟四、 Relation 主要與次要 Database

- 在次要 Database 中建立一筆資料,並將其命名為「隨機小幫手」,如上圖

2. 將主要 Database 的每一筆資料都 Relation 至隨機小幫手,如上圖
步驟五、 Rollup 出最大值

- 在次要 Database 中建立一個 Rollup 屬性
- Property 選擇
獲取更隨機的數值
- Calculate 選擇
Max
(其實選擇 Min 也是可以的)
步驟六、 將最大值數字化,並 Rollup 回主要 Database

- 在次要 Database 中建立一個 Formula
- 使用
toNumber
函數將上步驟的結果數值化prop("Rollup最大值").toNumber()

3. 在主要 Database 中建立一個 Rollup
4. Relation 選擇 [Sample]次要資料庫
5. Property 選擇 最大值數字化
6. Calculate 選擇 Max
步驟七、 使用 Filter 過濾結果

因為最大值是唯一,所以 Checked(打勾)的結果也會是唯一。
結語
恭喜你把這篇文章讀完了!除了上述的「隨機佳句」之外,我想應用在「隨機食譜」也是一個不錯的選擇。
希望這篇「隨機機制」的文章你會喜歡,如果真的看不懂,也可以複製底下的模板,好好研究一番,貼心鬼如我也附上了更詳細的版本,只要你跟著步驟做,一定可以自己設定完成。
若有任何想法都可以在底下留言討論,你們的留言就是我最大的創作動力(以前都覺得這是幹話,如今開始創作才發現這是真的),如果你知道如何透過運算來讓數值「更隨機」麻煩一定要留言,我們一起交流交流 🥰
免費模板
無情工商
嘔心瀝血創作的「一鍵打卡-習慣追蹤」模板已經上架了!
如果你喜歡我的文章,或許你也會喜歡我的模板,筆者有偷偷送給身旁兩位交情不錯的友人使用,皆得到滿不錯的心得回饋,在這裡推薦給各位。