|

Notion 教學 | 如何計算資料庫不同列的數字?

秋天到了,美女同事有點發胖,請你做個《減肥追蹤表》,身為 Notion 高手義不容辭,這個表可以每天紀錄,並計算每天輕了多少。啊!Notion 公式好像遇到跨列就搞不定?別擔心!這個 Notion 教學 裡告訴你如何用 Relation 完成

Notion 教學 :在 Excel 中這是最簡單的公式,在 C3 輸入「= B2-B3」然後一路拉到底就好了
Notion 教學 :在 Excel 中這是最簡單的公式,在 C3 輸入「= B2-B3」然後一路拉到底就好了(Source:Uncle6 自製
Notion 教學 :換成 Notion 好像就沒這麼簡單,Notion 的每一橫列都是一個筆記頁面,對它來說,雖然表格擺在一起,但你要拿 Day 1 的體重減去 Day 2 獲得差異,就是在 2 個不同頁面間運算,不太容易
Notion 教學 :換成 Notion 好像就沒這麼簡單,Notion 的每一橫列都是一個筆記頁面,對它來說,雖然表格擺在一起,但你要拿 Day 1 的體重減去 Day 2 獲得差異,就是在 2 個不同頁面間運算,不太容易(Source:Uncle6 自製

既然在 Excel 那麼簡單,就在 Excel 做就好了?當然 Notion 有它的各種強項,例如它更容易篩選、排序、分類、整欄運算…,最重要的是它就放在你的筆記中,很容易開啟、搜尋,更不用去檔案夾挖出,它可在眾多軟體中勝出,必然有它存在的價值!那麼,這個 Notion 教學 就來看看如何搞定它!

Notion 每列是一頁 頁面之間要用 Relation 串起來

對 Notion 來說,每一橫列都可以展開變一頁筆記,所有相關的內容可以記錄在裡面,也就是它的表格是有「深度」的,Excel 就沒這個功能,如果對這一列資料有什麼說明,只能用附註小小的寫一點點。

既然每一橫列都是一頁,你可以把這張表格看作「目錄」,它只是把這些頁面疊在一起,但頁面之間沒有關係,當然無法計算。

Notion 教學 :增加一欄 New Relation,跟自己產生關聯
Notion 教學 :增加一欄 New Relation,跟自己產生關聯(Source:Uncle6 自製

想通這件事,就有辦法了,Notion 裡有「Relation」功能,可以讓不同的資料表產生關聯,而它也能讓同一張資料表跟自己產生關聯!

記住要按下「Separate directions」它會把「第 1 列<>第 2 列」的關係記在一欄,「第 2 列<>第 1 列」記在另一欄。

很像繞口令?如果沒開,當你讓兩列產生關聯,那個關係會出現 2 次,就很難運算了。

現在可以點擊讓每列與前一列產生關聯。

Notion 教學 :在「Related 體重紀錄」欄,讓後一天與前一天產生關係,它是有點麻煩,不像 Excel 迅速一拉就好
Notion 教學 :在「Related 體重紀錄」欄,讓後一天與前一天產生關係,它是有點麻煩,不像 Excel 迅速一拉就好(Source:Uncle6 自製

關係產生了,不過要怎麼把上一列的數字拿到下一列來計算呢?你需要 Rollup。

Rollup 撈出需要欄位

Notion 教學 :新增一個 Rollup 欄位,於剛剛做的關係相關(就是每天跟它前一天相關),然後告訴它你要的前一天數據裡的「體重」欄位的資料
Notion 教學 :新增一個 Rollup 欄位,於剛剛做的關係相關(就是每天跟它前一天相關),然後告訴它你要的前一天數據裡的「體重」欄位的資料(Source:Uncle6 自製
Notion 教學 :Rollup 幫你把昨天數據拉過來,把它移到「體重」前面,這時只要簡單相減就好了
Notion 教學 :Rollup 幫你把昨天數據拉過來,把它移到「體重」前面,這時只要簡單相減就好了?(Source:Uncle6 自製

簡單寫 Notion 公式

Notion 公式跟 Excel 的公式差不太多,如果美女同事成功的每天減重:

  1. 前一天 - 體重 :昨天 55,今天 54.8,就顯示差異 0.8 公斤。
  2. 體重 - 前一天 :今天 54.8,昨天 55,就顯示(少了)-0.8 公斤(比較有成就感)。

不過兩種都有問題,因為「Type mismatch」,所以無法按下完成,這是什麼問題呢?

Notion 教學 :在「差異」欄下面的格子按一下就可以進入這個寫公式介面,意外發現竟然有錯,右上角的 Done 不能按,錯在哪裡呢?
Notion 教學 :在「差異」欄下面的格子按一下就可以進入這個寫公式介面,意外發現竟然有錯,右上角的 Done 不能按,錯在哪裡呢?(Source:Uncle6 自製

Type 要一致才能運算

一定要都是數字才能相減對吧?

Rollup 拉過來的「前一天」雖然是數字,但是它是叫做「Rollup」的特別的資料類型(Type),它看起來是數字,但 Notion 告訴電腦它不是,所以不讓我運算。

按這裡看看 Notion 有哪些 Data Types

但它真的原本是數字啊,就用 toNumber 把它轉換為數字的 Type 吧!

【什麼是 Type 資料類型?】
在設計資料庫時每欄都輸入的資料要定義,就是告訴它「以後這格會輸入哪一種內容」,1、2、3 是「數字」,但如果你告訴電腦這欄會放「文字」,你輸入 100,對它來說跟「一百」、「壹佰」一樣是文字,無法計算。
Notion 教學 :用 toNumber() 函數把「前一天」包起來,它可以把那看起來是數字但電腦說它不是數字的數字轉成真正的數字。
Notion 教學 :用 toNumber() 函數把「前一天」包起來,它可以把那看起來是數字但電腦說它不是數字的數字轉成真正的數字。(Source:Uncle6 自製

好,現在完成了!

反過來,format() 函式可以把數字轉文字,例如 format(100),這「數字 100」就被變身為「文字 100」。 
Notion 教學 :每一列都好了,但那第一列怪怪的。
Notion 教學 :每一列都好了,但那第一列怪怪的。(Source:Uncle6 自製

用 If 把礙眼的 Bug 遮住

原來「差異」用後一天的體重減去前一天,但 Day1 沒有前一天啊!所以前一天是「空值」(不是 0 喔)55 公斤 - 55 公斤 = -55 公斤,這是個 Bug。

Notion 教學 :用 empty() 函式檢查“前一天”是不是空值,如果是,就顯示 0,不然顯示差異。
Notion 教學 :用 empty() 函式檢查“前一天”是不是空值,如果是,就顯示 0,不然顯示差異。(Source:Uncle6 自製

用上述方式,可以:

  1. 判斷「前一天」這格是不是空白沒填入資料?
  2. 如果它是空的就顯示 0
  3. 如果不是空的就顯示差異

如果你太久沒寫程式,這個 if 跟平常的 if 長得不太一樣,原本的是:

if ((被判斷的條件) , 如果為真的答案 , 如果為假的答案)

這種寫法比較複雜,因為 Notion 的公式編輯器跟 Excel 一樣不完整,一層又一層的括號會讓人迷路,簡單的 Ternary Operator 容易些,就是:

被判斷的條件 ? 如果為真的答案 : 如果為假的答案

OK,現在《體重紀錄表》完成了,把它交給美女同事,她減肥完成就可以約出去吃晚餐了!

還能怎麼用?

用 Relation 讓不同列產生關係後,Excel 能做的 Notion 也能做了,例如,新創公司何時要開始交營所稅(賺的 > 賠的,盈利部分要交營所稅)?你要把每個月的營收和支出都「累加」,如果某月營收超過支出(損益兩平),就是要開始交營所稅了,恭喜!

累加就是 第一個月營收 + 第二個月營收 ...... 到最後一列,每 2 列加總的結果再與下一列相加,再把「支出累加結果 – 收入累加結果」,如果負數,就還不用交,正數就要交了。

其實會計師都用 Excel 做啦!像「全年財務營收預估」這麼複雜的表,用 Notion 應該會多花費很多時間連結。

依照特性,有些內容更適合用 Notion:

  • 常常要填的數據:Notion 是筆記本,打開就能填,不像 Excel 還要打開檔案夾找出來等程式跑完,方便;
  • 需要分類的數據:Notion 很容易用標籤分類,當然 Excel 也可做下拉選單,但不好用;
  • 要切換不同視圖:同一組數據,Notion 可依時間呈現行事曆,依照進度呈現看板、甘特圖… 當然 Excel 也能更改篩選、排序條件,但就是表格變化沒視覺呈現,不直覺,人還是靠視力的動物啊;
  • 附註超多的數據:如果數據收錄還要加上筆記、照片、附加檔案… 等資料,Notion 開頁面可拖進無數相關內容,但 Excel 只能放在外部檔案夾,再想辦法紀錄位置,很浪費時間。

還有什麼更適合用 Notion 呢?

分享給朋友

Similar Posts

歡迎來聊聊!提出想法,一起成長,或是吐槽