更新於 2024/12/02閱讀時間約 6 分鐘

【Notion】如何在 Notion 裡製造出「隨機佳句」

高效生活,幫助你找回更多自己的時間

前言


不知道你是否跟我一樣,Google「Notion random quotes」會一直找到這個 Notion Quotes Widget,雖然效果很棒,但我就想要看到自己存下來的詩句啊!!

於是英文苦手的我研究來研究去,終於找到了一個方法來達到想要的功能。

如上圖,在不同時間重新整理頁面,即會從你的資料庫裡挑選出一句「佳句」,意即只要你每一次打開 Notion ,就會得到一個驚喜,快來看看我是怎麼做的吧!

教學


我找到的資料

首先,必須得聲明,這個方法並非我原創,但我也花了許多心思在重新構築整套核心機制。在這裡先致敬原作者,附上影片以示尊重。


我的設計邏輯

由於本人英文苦手,即便有影片教學,基本上可以說還是完全看不懂,但強迫症的個性使然,不想直接複製貼上(不懂運作機制會令我感到煩躁)
最後,我決定從最根本的核心理念開始,重新建構屬於自己能理解的「隨機機制」。

雖然內文看不懂,但我得到了兩個非常有用的資訊,我們能透過 Notion 的 Formula 函數,分別獲取「固定」與「隨機」這兩組數字。透過兩組數字的組合與運算,最終可以得到一組隨機的數值。


舉例說明
有一組固定數值為 134,除以隨機數值 172 ,結果會得到 0.774566474….,我們只要從小數點後面任意取 3 位數,像是 0.774566474 中的 566 對於我們來說就是「隨機數值」。
因為當隨機數值跳變成 176 時,134÷173=0.7613636364,小數點後的 3 位數取數值為 363,是不是結果就完全不一樣了?


獲得隨機數值後,我們可以透過 Rollup 功能來獲取「最大值」,並透過函數來判定哪一筆資料等同「最大值」,最終就能透過 Filter 功能來顯示唯一的結果。


流程圖

如果你完全看不懂,那也不用擔心,貼心鬼如我,畫了一張流程圖來讓你更容易理解整個機制。
以下我會說明整個流程是如何進行設定,相信只要跟著我的步驟,你一定也可以設定出屬於自己的「隨機模板」!










注意事項
為不製造理解上的困擾,因此文章會使用大量的 Notion 原生用詞,例如 Database、Formula 之類的,本人絕非「晶晶體」慣用者。


流程


步驟一、建立兩個 Database

  1. 建立主要 Database 來存放資料(可以是名言佳句、食譜.....之類的)
  2. 建立次要 Database 來獲取最大值(工具人)

步驟二、取得固定數值與隨機數值

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

步驟三、獲得「更隨機」的數字

上面我們透過了函數取得了 Notion 裡的隨機數值,接下來我們將透過組合與運算,得到一組更隨機的數值。

  1. 使用運算式來獲得更隨機的數值,(固定+隨機)÷隨機= 新隨機數值
  2. 得出來的結果可能是個位數、十位數、百位數,因此我使用 substring 來取小數點後的 3 位數(想從第幾位開始取都可以)
  3. 使用 toNumber() 將得到的結果轉化成數字
  4. 將上述的步驟進行組合
    substring((prop("獲取固定數值")+prop("獲取隨機數值"))/prop("獲取隨機數值"),6,9).toNumber()

步驟四、 Relation 主要與次要 Database

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

2. 將主要 Database 的每一筆資料都 Relation 至隨機小幫手,如上圖

步驟五、 Rollup 出最大值

  1. 在次要 Database 中建立一個 Rollup 屬性
  2. Property 選擇 獲取更隨機的數值
  3. Calculate 選擇 Max(其實選擇 Min 也是可以的)

步驟六、 將最大值數字化,並 Rollup 回主要 Database

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

3. 在主要 Database 中建立一個 Rollup
4. Relation 選擇 [Sample]次要資料庫
5. Property 選擇 最大值數字化
6. Calculate 選擇 Max

步驟七、 使用 Filter 過濾結果

因為最大值是唯一,所以 Checked(打勾)的結果也會是唯一。

結語


恭喜你把這篇文章讀完了!除了上述的「隨機佳句」之外,我想應用在「隨機食譜」也是一個不錯的選擇。

希望這篇「隨機機制」的文章你會喜歡,如果真的看不懂,也可以複製底下的模板,好好研究一番,貼心鬼如我也附上了更詳細的版本,只要你跟著步驟做,一定可以自己設定完成。

若有任何想法都可以在底下留言討論,你們的留言就是我最大的創作動力(以前都覺得這是幹話,如今開始創作才發現這是真的),如果你知道如何透過運算來讓數值「更隨機」麻煩一定要留言,我們一起交流交流 🥰

免費模板


【文章範例版】Random Quotes Maker

【詳細步驟版】Random Quotes Maker

無情工商


嘔心瀝血創作的「一鍵打卡-習慣追蹤」模板已經上架了!
如果你喜歡我的文章,或許你也會喜歡我的模板,筆者有偷偷送給身旁兩位交情不錯的友人使用,皆得到滿不錯的心得回饋,在這裡推薦給各位。




分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.