たまに使うNotionの関数メモ 2

たまに使うNotionの関数メモ 2

こんにちはn0bisukeです。
 
最近NotionのDBを触ってますが、関数(Formula)機能をいくつか触っているのでメモ的に残しておきます。
 

文字数をカウントしたい

 
lengthを使うことで文字数の計算ができます。
 
 

文字数が少ない場合にアラート

 
バリデーションがないのでこんな感じで表示させられるか見ています。
 

文字数が少ない場合にアラート

 
提出期限はロールアップで別DBから取得してますが、この指定で問題なくいけました。
 
concat - 文字列の結合

日付にラベルをつけたい

 
ラベルで一緒なのですが、型違いのケースです。
 
 
最終更新のプロパティはタイプがテキストではなく にして自動付与になっているので、concat()で結合する際に型変換が必要でした。formatDate()を使うことで
 
formatDate - 日付を文字列に変換
 

複数の人からの点数チェック

 
プロトアウトスタジオでは宿題に対してのレビューがありますが、特定の指標に対して、複数のレビュアーが点数を付けているものを殿堂入り記事とする運用を試してみています。
 
3ステップほどに分けてチャレンジしてみました。

ステップ1. ロールアップで取得した値をNumber型に変換

まずはロールアップで取得した値ですが、”0,1”などという文字列になって取得されます。
レビュアーがレビューをした点数
なかなか面倒ですね。
 
slice()を使うことで
slice - 文字列抽出
これで”0,1”の0を取得できます。この時点では0は数字ではなく文字列になります。toNumber()を使うことで数字に変換できます。
 
 
toNumber - 数値に型変換
 
これで”0,1”という文字列から0や1を取得できます。
 

ステップ2 掛け算

 
“複数の人が1点以上を付けている場合”を検出したいですが、掛け算して1以上になればその状態になります。
 
 
multiply - 掛け算
 

ステップ3 ◯◯以上かを判定

largerEq()を使うことで特定の直以上かどうかを判定できます。
 
 
largeEq - 特定の値以上かどうかの判定
 
 
これで期待した挙動になりました。
 
largeEqで判定することでチェックボックスのチェックになりました。
 

所感とまとめ

NotionのFormulaは思った以上に型が厳密で変換が厳しいものもあったりするなという印象です。
 
使いこなせれば値が自動的に入る仕組みを作れると思うので引き続き使って調査していきたいです。