Notion Formula 2.0 § Random Shuffle 隨機數

更新於 2024/12/09閱讀時間約 9 分鐘

前言

在 2022 年,我曾分享過一篇〈如何在 Notion 中獲取隨機數〉,當時是根據 Matthias Frank 的文章內容學習寫下的筆記。現在我們要將公式更新至 2.0 版本,並且除了本來提到的自動變化隨機數以外,一併整理按鈕版的公式設置。

我的擔憂及 2.0 版的好處

我曾提過公式 2.0 的好處,這次範例進一步展現了它的優點。以前需要七個以上欄位的公式,現在只需一個欄位即可完成,讓我們有更多欄位空間來呈現其他資訊。

為何我特別關注欄位的使用數呢?曾在國外論壇中看到一個說法,指稱 Notion 免費帳戶的資料庫可能限制在 20 個屬性欄位。雖然我沒有找到官方的宣稱紀錄,但這提醒了我,如果 Notion 未來恢復欄位數量的限制,我們需更加有效地使用每個欄位。

PS. 引用這個說法並非想引發擔憂,我已測試過免費帳戶,目前(至少本文發布時)一個資料庫仍可超過 20 個屬性欄位。

可能的應用

時間自動更新的隨機數配置,可應用於「每日名言」、「卡片筆記的靈感卡片」等,這樣可以隨機看到不同內容,增添驚喜感。

透過按鈕來手動更改數字的設置,則適合於「抽卡」、「抽禮物」、「找吃的」等場景。可以進一步細分類別,只需加入標籤並設計多個按鈕,就能隨時進行特定類別的隨機選擇。

隨機數的產生

隨時間變化的設置

公式邏輯其實簡單:當固定數值(ID)與隨機數(now())匹配時即為真。

由於 timestamp() 的顯示單位為分鐘,因此若僅使用 timestamp(),同一分鐘內建立的資料會有相同數值。為避免重複,固定數值需搭配 id()。而 now() 則提供了隨著時間變化的動態值,是實現自動更新的理想選擇。

/* 產生隨機日期 */
lets(
ID處理值, id().replaceAll("[a-z]", "").substring(0, 8).toNumber(),
常數_1, (ID處理值 * 800067089 + 800068411) % 800053967 + 900067309,
常數_2, (ID處理值 * 100011979 + 500067713) % 900066731,
靜態數值, (prop("Created Time").timestamp() * 100011979 + 500067713) % 900066731,
動態數值, (now().timestamp() * 800067089 + 800068411) % 800053967 + 900067309,
固定值, (靜態數值 * 常數_1) % 900066571,
變動值, (動態數值 * 常數_2) % 900066571,
隨機時間戳, format(固定值 * 變動值).substring(0, 13).toNumber(),
隨機日期, fromTimestamp(隨機時間戳),
隨機日期
)

過去若要顯示最大日期,我們需要透過 Rollup 功能來實現,但現在可以直接使用 map()sort()last() 來完成相同的效果,簡化了流程。

/* 在計算機的顯示的公式 - 最大日期 */
map(prop("魔法口袋"),current.prop("隨機日期")).sort().last()

需要注意的是,map() 的輸出是列表格式,因此隨機日期也必須以列表形式呈現,才能正確進行比較。

map(prop("計算機"),current.prop("最大日期")) == [prop("隨機日期")]

最後,請記得啟用篩選器,並選擇唯一隨機碼checked的項目。

raw-image

設置按鈕觸發隨機數

首先,新增一個日期時間欄位,記錄按鈕按下後的當下時間,我們先將此欄位命名為「現在」。同時需將上方公式中的「動態數值」裡的 now() 改成 prop("現在")

/* 產生隨機日期 */
lets(
ID處理值, id().replaceAll("[a-z]", "").substring(0, 8).toNumber(),
常數_1, (ID處理值 * 800067089 + 800068411) % 800053967 + 900067309,
常數_2, (ID處理值 * 100011979 + 500067713) % 900066731,
靜態數值, (prop("Created Time").timestamp() * 100011979 + 500067713) % 900066731,
動態數值, (prop(”現在”).timestamp() * 800067089 + 800068411) % 800053967 + 900067309,
固定值, (靜態數值 * 常數_1) % 900066571,
變動值, (動態數值 * 常數_2) % 900066571,
隨機時間戳, format(固定值 * 變動值).substring(0, 13).toNumber(),
隨機日期, fromTimestamp(隨機時間戳),
隨機日期
)

在計算機的資料庫中,除了Relation以外,還要再加入下面的公式。

在計算用的資料庫中,除了 Relation 外,如同上面範例一樣,需要顯示所有資料的日期,並找到最大的日期。

/* 在計算機的顯示的公式 - 最大日期 */
map(prop("百寶箱"),current.prop("隨機日期")).sort().last()

之後,只需回到原本的資料庫,對照最大日期與隨機日期值,即可完成設置。

map(prop("計算機"),current.prop("最大日期_百寶箱")) == [prop("隨機日期")]
raw-image

最後,新增一個「按鈕」,當需要觸發隨機數(例如抽獎)時,只需點擊按鈕,隨機數就會自動刷新。設置條件為:將指定資料庫中的「現在」欄位更新為當前時間,以觸發隨機變化。

raw-image

範例頁面

隨機數範例

小結論

如果大家對這個隨機數的應用有興趣,但不知道怎麼下手,可以參考我之前寫過的〈Notion 模板_塔羅日記〉。此外,如果你有任何新奇、有趣的點子,也非常歡迎分享給我!

我發現,隨著筆記的累積,現在能不斷引用過去的紀錄,這種體驗真的很奇妙!彷彿系統中的每個小片段,彼此緊密相連,慢慢形成一片網子❤️,也希望大家能建立自己的筆記系統,體驗這樣的美好❤️。

參考資料

avatar-img
134會員
85內容數
小小的細縫裡,夢想的小苗也會萌芽。 我想在餘生中,體會生命的感動和奧秘。 透過仔細觀察,將發現世界不同的美好。 歡迎你來到 ~ ♡ Chloe 的小世界 ♡
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Chloe小窩 的其他內容
Notion Formula 2.0 日期公式運用:找對應日期、日期區間的判斷與轉換
透過使用公式 2.0,使用者可以自定義時間標籤,清晰地顯示任務的安排及空白時段。
Notion Formula 2.0 日期公式運用第三篇:如何在 Notion 中使用公式製作迷你月曆。
Notion Formula 2.0 日期公式運用第二篇:工作日計算(可自訂國定假日、特殊假期)
Notion Formula 2.0 日期公式運用第一篇:倒數進度條、x年回顧彩蛋、生日提醒。
Notion Formula 2.0 日期公式運用:找對應日期、日期區間的判斷與轉換
透過使用公式 2.0,使用者可以自定義時間標籤,清晰地顯示任務的安排及空白時段。
Notion Formula 2.0 日期公式運用第三篇:如何在 Notion 中使用公式製作迷你月曆。
Notion Formula 2.0 日期公式運用第二篇:工作日計算(可自訂國定假日、特殊假期)
Notion Formula 2.0 日期公式運用第一篇:倒數進度條、x年回顧彩蛋、生日提醒。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
Thumbnail
只需要一個資料庫就可以做到各種不同的用途顯示 像紙本的五年手帳一樣,可以自動回顧「過去的今天」的日記模板要如何設定? 函數設定的思路與教學都在這邊了! 免費日記模板下載