如何用 Noiton 建造子彈筆記模板?|Formula 教學

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

這篇介紹了我常用的 Formula 指令,如果想要學 Formula 但不知道怎麼開始,可以看著跟著文章步驟摸一輪,相信大家做完後就能成為 Notion 大神!這次用了 Formula 神器「if」「contains」;帶到一些「date」系列的基本運算;「or」「and」的使用時機等實用指令。


子彈飛了一個月,

終於有人向我提問啦!!


raw-image

這次被問了「怎麼弄出這些公式?」所以這一篇會針對以下這個模板的「待辦清單」部分的公式做說明,如果想要找特定公式的用法的話,可以善用左方的「章節目錄」做選擇。

如果還沒有看過模板想要領取的話,請左轉到這篇初學者也能輕鬆打造待辦清單

在寫 Notion 的 Formula (你可以稱之為算式、函式、公式)的時候,跟 Execel 或是 Google sheet 很像,可以讓函式依照某些條件來判斷該如何顯示。只要你掌握到 Notion 的 Formula 可以設定哪些條件之後,要讓他用什麼樣的方法去顯示就是大家可以發揮想像力的地方了。

raw-image

而當你點開 Notion 的 Formula 你可以看見所有 Properties 以及函式前面都會有以上四種符號,代表他們在函式中有不同的身分,我對他們的認識為(從左至右)文字、數值、條件、日期。先對這四個符號有基本概念,在接下來的教學中比較不會卡關!


因為之前寫的 Formula 有點複雜,所以這幾天又將他做了優化,讓它看起來更清爽一點。其實是亂到不知道怎麼寫教學文,所以優化了一輪,但理論上一樣啦!

這個頁面總共用到了 9 個 Formula,我先用顏色來將有關聯性的 Property (屬性)標出來。下圖的編號是我在建照模板時的建照順序,我也會依照這順序做介紹。

raw-image


緊握扶手
站穩踏階

進入正題囉



任務顯示

每個卡片有一堆屬性以及不同的狀態,想要讓大家簡潔地全部顯示成「一行」的話,這真的必學~靈感來源為我很崇拜的日本 Notioner Yuji Tsuburaya 的這一則推文,簡約就是王道啊!

❶(contains)包含特定項目時打勾

raw-image
contains(prop("分類"), "活動")

翻譯蒟蒻

  • 條件:屬性分類包含「活動」這個字的話打勾,否則不打勾
raw-image



❷(or)符合任一條件時打勾

raw-image
or(contains(prop("分類"), "活動"), contains(prop("分類"), "會議"))

翻譯蒟蒻

  • 條件1:符合以下其中一個條件的話打勾,否則不打勾
  • 條件2:屬性「分類」裡頭包含『活動』這個字的話打勾,否則不打勾
  • 條件3:屬性「分類」裡頭包含『會議』這個字的話打勾,否則不打勾
raw-image



❸(if)依照條件判斷顯示前者或後者設定

▸ ① 如果是會議或是活動

raw-image
if(or(contains(prop("分類"), "活動"), contains(prop("分類"), "會議")), "▶︎ " + prop("詳細"), "")

翻譯蒟蒻

  • 條件1:符合條件2的話顯示A,否則顯示B
  • 顯示A:"▶︎ " 加上屬性「詳細」的內文
  • 顯示B:無
  • 條件2:符合以下其中一個條件的話打勾,否則不打勾
  • 條件3:屬性「分類」裡頭包含『活動』這個字的話打勾,否則不打勾
  • 條件4:屬性「分類」裡頭包含『會議』這個字的話打勾,否則不打勾
raw-image
raw-image



② 如果是待辦清單

▹ ⒈ 待辦與完成

raw-image
if(prop("完成"), "✓ done ", "▶︎ to do ")

翻譯蒟蒻

  • 條件:如果屬性「完成」被打勾的話顯示A,否則顯示B
  • 顯示A:『✓ done』
  • 顯示B:『▶︎ to do』
raw-image
raw-image



▸▹ ⒉ 待辦與完成、未完成

raw-image
if(prop("完成"), "✓ done ", if(prop("未完成"), "✘ undone", "▶︎ to do "))

翻譯蒟蒻

  • 條件1:如果屬性「完成」被打勾的話顯示A,否則看條件2
  • 顯示A:『✓ done』
  • 條件2:如果屬性「未完成」被打勾的話顯示B,否則顯示C
  • 顯示B:『✘ undone』
  • 顯示C:『▶︎ to do』
raw-image
raw-image



❹ 合併以上條件並加上待辦事項詳細說明

raw-image
if(or(contains(prop("分類"), "活動"), contains(prop("分類"), "會議")), "▶︎ ", if(prop("完成"), "✓ done ", if(prop("未完成"), "✘ undone ", "▶︎ to do "))) + prop("詳細")顯示執行日

翻譯蒟蒻

  • 條件1:如果屬性「分類」包含『活動』或『會議』的話顯示A,否則看條件2
  • 顯示A:▶︎
  • 條件2:如果屬性「完成」被打勾的話顯示B,否則看條件3
  • 顯示B:『✓ done』
  • 條件3:如果屬性「未完成」被打勾的話顯示C,否則顯示D
  • 顯示C:『✘ undone』
  • 顯示D:『▶︎ to do』
  • 無視以上條件,一律加上屬性「詳細」的內文
raw-image
raw-image



顯示執行日

臉書社團 Notion.Taiwan 台灣官方社群 真的很多大神潛伏在裡頭,這個算式就是我在社團裡面逛啊逛的時候發現的。(想朝聖的)算式來源:某篇 Notion 社團貼文的留言處

❶ (timestamp)13 位時間戳

raw-image

只要在 timestamp 後面加上任何上「日期或時間」,它就會將這轉為13 位時間戳。

raw-image

時間戳顯示的「now」在算式中他會顯示國際標準時間,所以為了要校準時差所以需要加上八小時。

  • 1000:毫秒 → 秒
  • 60:秒 → 分
  • 60:分 → 小時
  • 8:八小時


❷ (mod)無法被整除的餘數

為了要屬性「今日時間」顯示為每一天的午夜 12:00am,所以要先算出當下這個時間戳無法被「天」這個單位整除的數字為多少。

先從簡單的開始

raw-image
  • 21 ÷ 3 = 7 ⋯ 「0」
  • 14 ÷ 3 = 4 ⋯ 「2」
代入時間戳後
raw-image
  • 台灣的標準時間 ÷ 24 小時 = 今天的 12:00am ⋯ 「多出的時間」


▸ 算出當下這個時間的 12:00am 的時間戳

raw-image
mod(timestamp(now()) + 8 * 60 * 60 * 1000, 24 * 60 * 60 * 1000)
  • 現在這個時間 - 剛剛算出來多出的時間 = 台灣時間今天的 12:00am


❸(fromTimestamp)把 13 位時間戳顯示成時間

raw-image
fromTimestamp(timestamp(now()) - mod(timestamp(now()) + 8 * 60 * 60 * 1000, 24 * 60 * 60 * 1000))



❹(start & end)開始與結束的時間

當你的時間設定有「起始日」跟「結束日」時,就可以用這個指令讓他只顯示其中一個。

▸ ① 顯示起始時間

raw-image

▸ ② 顯示結束時間

raw-image



❺(dateBetween)計算兩個時間的差距

raw-image

不只可以指定顯示「天數」也可以選擇其他時間單位

raw-image

▸ ① 計算起始時間到今天

dateBetween(start(prop("date")), prop("今日時間"), "days")
raw-image

▸ ② 計算結束時間到今天

dateBetween(end(prop("date")), prop("今日時間"), "days")
raw-image

❻(and)符合兩者條件時打勾

prop("起始到今天") <= 0 and prop("結束到今天") >= 0
raw-image

翻譯蒟蒻

  • 如果起始到今天大於 0 的話代表這項任務還未開始
  • 如果起始到今天小於等於 0 的話代表這項任務需要開始執行
  • 如果結束到今天大於等於 0 的話代表這項任務需要繼續執行
  • 如果結束到今天小於 0 的話代表這項任務已經結束


  • 條件1:同時符合以下兩個條件的話打勾,否則不打勾
  • 條件2:起始到今天小於等於 0 的話打勾,否則不打勾
  • 條件3:結束到今天大於等於 0 的話打勾,否則不打勾


有「執行日」這個 checker 的話,就可以看這個活動現在是不是在「進行中」,就可以用 Filter 把目前正在進行中的任務設定為顯示,將那些尚未發生或是已結束的活動隱藏起來,一個超讚的功能。

因為會需要用到四個 Formula,所以看起來可能會有點複雜,但相信大家看完之後對於 Notio Formula 的日期可以怎麼活用能有一定程度的了解!



倒數顯示

❶(format)告訴算式這是文字

raw-image

若你想要讓他顯示「倒數 ◯ 天」然後在「結束到今天」這個屬性前後加上「倒數」及「天」這兩段文字時,他會在下方顯示「prop("結束到今天") is not a text」的錯誤訊息。

因為對於 Formula 來說數值只能跟數值做計算,文字只能跟文字做串連,而對於 Formula 來說「結束到今天」這個屬性是數值而非文字,所以無法跟文字做串連。為了要讓 Formula 認為這串東西是「文字」,所以要在前面加上一個「format」的指令,他就會將這個屬性轉為一串文字,接著就能做文字接龍了!

raw-image

❷(if)在不同條件下顯示不同狀態

為了不讓這一欄顯示「倒數 -5 天」這種會讓如腦袋卡住的敘述,所以用 if 讓他只有在需要被倒數時顯示,上面的 if 做了那麼穩紮穩打的基礎功,這邊就直接來飆車!

if(prop("結束到今天") < 0, "", if(prop("結束到今天") == 0, "today", "倒數 " + format(prop("結束到今天")) + " 天"))

翻譯蒟蒻

  • 條件1:如果屬性「結束到今天」小於 0 的話顯示A,否則看條件2
  • 顯示A:無
  • 條件2:如果屬性「結束到今天」等於 0 的話顯示B,否則顯示C
  • 顯示B:『today』
  • 顯示C:『倒數』加上屬性「結束到今天」加上『天』
raw-image
raw-image

顯示工時

有些時候你可能會需要計算每個工作項實際花了多少時間,這個時候你就可以這樣做計算。這裡使用到的指令在面都有用到過了,所以直接進入重點!

❶(dateBetween)計算兩個時間的差距

raw-image
dateBetween(end(prop("date")), start(prop("date")), "minutes")

❷(round)四捨五入

如果你直接將算出來的分鐘除以 60 你會得到一個沒有很直覺的數字

raw-image

為了避免這種事情發生,這時候就要用到我們的四捨五入。

raw-image

但這麼暴力的四捨五入會讓數字有點失真,大部分的人都還是會用 0.5 甚至是 0.25 作為最小單位,這時只要將數字帶進算式就可以囉!

raw-image
round(prop("總工時(分鐘)") / 60 / 0.5) * 0.5


👇 考量到篇幅,想看更詳細的四捨五入教學的話可以看這篇 👇


回家作業:顯示起始日

raw-image
if(empty(prop("date")), "未定", if(formatDate(now(), "MMM DD, YYYY") == formatDate(start(prop("date")), "MMM DD, YYYY"), formatDate(start(prop("date")), "▶︎ " + "HH:mm"), if(dateBetween(start(prop("date")), now(), "days") > -1 and dateBetween(start(prop("date")), now(), "days") < 7, "🗓  " + formatDate(start(prop("date")), "ddd" + " " + if(formatDate(start(prop("date")), "HH:mm") == "00:00", "", formatDate(start(prop("date")), "HH:mm"))), if(dateBetween(start(prop("date")), now(), "days") < 1, "", if(formatDate(start(prop("date")), "HH:mm") == "00:00", formatDate(start(prop("date")), "MM.DD ddd"), formatDate(start(prop("date")), "MM.DD ddd HH:mm"))))))

為了避免大家消化不良(其實是不想這篇文章繼續難產下去),這個 Formula 就當作大家的回家作業!

裡頭除了「formatDate」今天沒有講到以外其他指令都有在今天提到。大家可以像我一樣用螢光筆把「條件」跟「顯示」用不同顏色標示出來後,就可以很清楚的看見邏輯。

希望各位可以動動手指點擊左下方的手掌五下,讓我獲得一些 LikeCoin,或是你也可以點選右邊的贊助鈕直接給我錢錢,讓我有動力繼續在假日寫教學文。為了獎勵你看到這邊,我把 level up 的模板放在下面,有興趣的可以拿去玩玩。


點我領取模板


我們今天的課就上到這邊

期待大家的提問

下課!


其實一直不知道需不需要更新這個專題,因為之前寫的模板建造教學被反應太長、單個算式教學又被認為不知道怎麼實際運用。寫得辛苦辛苦的教學文,如果沒有讓各位「搞懂」的話,身為投射者的我就會懶得更新很難感受到成就感。

我回到投射者的策略「等待被邀請」,當然,我知道我在這乾等沒用,於是乎,我到處分享模板,等待有人向我提問,等了一個月才等到了第一個,但等待的過程真的好苦澀啊〜😱

寫的過程因為截圖很多途中會寫到有點懷疑人生,腦袋中也有各種質疑的聲音出現,糾結是否真的要寫那麼細。希望能用我當初用著破破爛爛的英文程度,花大量時間到處爬文看影片學習研究的成果,希望可以幫助大家免除一些卡關的痛苦。

peace


留言
avatar-img
留言分享你的想法!
Rita-avatar-img
2022/05/16
請問Notion內有三個資料庫分別為每天不同專案內容的記錄,最後用一個行動清單資料庫,link database view整合一頁,可是這樣就有4個地方要"執行日期"(其實是同一天),想使用rollup,從行動清單拉"執行日期"到三個資料庫,但三個資料庫內都要計算起訖天數,formula無法計算rollup的日期,請問這個有解嗎?卡了一個禮拜還是沒想到解法,只好來求助大神了~
我自己的作法跟你一樣,有一個行動清單資料庫,但我的行動清單會建立在「行動資料庫」而不是「專案庫」裡。 我在專案庫的頁面裡頭放了有連結該方案的行動資料庫(用 filter)做篩選,這樣打開頁面就可以看見該專案的所有行動清單,並且在行動專案庫裡頭可以清楚地看見每一天需要執行的任務。 在專案資料庫用 Rollup 的 Percent checked,就可以看見該專案目前的完成度! 如果覺得太抽象的話可以私訊我粉專,或是到方格子的 Discord 討論,我可以統一教學~(我相信應該會有很多人有類似的需求~
avatar-img
遙遙的遊戲房
213會員
50內容數
一個愛寫Formula的文組人 一個開口閉口就人類圖的宅 一個住在日本的台日混血兒
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
Notion目前還沒有中文版,加上自由度高,一開始真的不知道要怎麼使用,也很難感受到他到底好用在哪?所以我整理了輕鬆開始的簡單的三步驟,照著這個順序開始,就能少走歪路,順利將Notion應用在工作生活上,變成你的得力助手!
Thumbnail
Notion目前還沒有中文版,加上自由度高,一開始真的不知道要怎麼使用,也很難感受到他到底好用在哪?所以我整理了輕鬆開始的簡單的三步驟,照著這個順序開始,就能少走歪路,順利將Notion應用在工作生活上,變成你的得力助手!
Thumbnail
Notion 的 Formula 更新啦~ 今年九月 Notion 重點更新「Formula 2.0」。
Thumbnail
Notion 的 Formula 更新啦~ 今年九月 Notion 重點更新「Formula 2.0」。
Thumbnail
如果你想要建立自己專屬的知識庫,或者是建立自己的待辦清單,這些零星的教學課程絕對夠你使用。 不過這裡想要介紹三大 Notion 必知道的功能,如果你跟筆者一樣都是金魚腦,很難記得很多東西,基本上掌握了這三大功能,Notion 可以快快上手喔!
Thumbnail
如果你想要建立自己專屬的知識庫,或者是建立自己的待辦清單,這些零星的教學課程絕對夠你使用。 不過這裡想要介紹三大 Notion 必知道的功能,如果你跟筆者一樣都是金魚腦,很難記得很多東西,基本上掌握了這三大功能,Notion 可以快快上手喔!
Thumbnail
在先前的文章中,我們分享了如何讓你能在頁面中建構出類紙膠帶 or 重點註記的文字樣式,提升內容的視覺吸引力。接下來,在這篇文章中,我們將繼續探索 Notion 的功能,教你如何在資料庫中使用公式 ( equation ),打造多樣化的文字風格,並使你的資料庫更加獨特和個性化。讓我們看下去!
Thumbnail
在先前的文章中,我們分享了如何讓你能在頁面中建構出類紙膠帶 or 重點註記的文字樣式,提升內容的視覺吸引力。接下來,在這篇文章中,我們將繼續探索 Notion 的功能,教你如何在資料庫中使用公式 ( equation ),打造多樣化的文字風格,並使你的資料庫更加獨特和個性化。讓我們看下去!
Thumbnail
Shorouk's Blog 是一款免費的第三方軟體,提供了一系列的小工具,包括日曆、小算盤、番茄鐘、導覽列、日期、時間、倒數計時器、跳轉按鈕、每日一句、表情符號、單位換算,以及每天/週/月/年剩餘時間。本篇將專注介紹先前所未介紹到的六款小工具,為大家帶來更多選擇。讓我們看下去!!!
Thumbnail
Shorouk's Blog 是一款免費的第三方軟體,提供了一系列的小工具,包括日曆、小算盤、番茄鐘、導覽列、日期、時間、倒數計時器、跳轉按鈕、每日一句、表情符號、單位換算,以及每天/週/月/年剩餘時間。本篇將專注介紹先前所未介紹到的六款小工具,為大家帶來更多選擇。讓我們看下去!!!
Thumbnail
現今這個信息爆炸的時代,我們需要一個好的筆記工具來幫助我們管理和整理資訊,而Notion 就是一個非常好用的筆記工具。不過,單調的黑白文字,總讓人覺得索然無味,那麼我們該如何讓Notion更加生動呢?快一起看下去,只要兩個步驟就可以讓你在 Notion 打造出類紙膠帶 or 重點註記的文字樣式!!!
Thumbnail
現今這個信息爆炸的時代,我們需要一個好的筆記工具來幫助我們管理和整理資訊,而Notion 就是一個非常好用的筆記工具。不過,單調的黑白文字,總讓人覺得索然無味,那麼我們該如何讓Notion更加生動呢?快一起看下去,只要兩個步驟就可以讓你在 Notion 打造出類紙膠帶 or 重點註記的文字樣式!!!
Thumbnail
Hello!你是初次使用 Notion 的朋友嗎?剛開始使用時是不是不知道從何處著手,那怕有很大的自由能客製化。這個心聲我們聽到了,本篇將會讓你知道,你只要學會 Notion 的六個基本功能,就能輕鬆地進行文書處理了。別再因為學習成本而來卻步,讓我們開始探索 Notion 的基本功能吧!走囉!!!!
Thumbnail
Hello!你是初次使用 Notion 的朋友嗎?剛開始使用時是不是不知道從何處著手,那怕有很大的自由能客製化。這個心聲我們聽到了,本篇將會讓你知道,你只要學會 Notion 的六個基本功能,就能輕鬆地進行文書處理了。別再因為學習成本而來卻步,讓我們開始探索 Notion 的基本功能吧!走囉!!!!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News