Notionのデータベースにおいて、マルチセレクト(複数選択可)のプロパティ(列)で実際に値がいくつ選択されているかをカウントする方法についてです。
- replaceAllなどの関数を利用して、マルチセレクトのプロパティ(列)で選択された値をカウントできます。
手順
まずは結果です。
次の画像では「趣味」がマルチセレクト(複数選択可)のプロパティ(列)となっています。
一方で「趣味カウント」では関数を用いて各行の「趣味」の数をカウントしています。
式の内容は次のとおりです。
なお関数の入力方法については曜日を求めるの記事で紹介してますのでそちらをご確認ください。
関数式
if(prop("趣味") == "", 0, length(replaceAll(prop("趣味"), "[^,]", "")) + 1)
「趣味」列に何もなければ0、そうでなければ「prop("趣味")」で参照した文字列(下記参照)中のカンマの数を数えて(カンマ以外を削除して長さを求める)1を足す、ということをやっています。
なお「prop("趣味")」だけを実行した結果は、選択されている各値をカンマ区切りでつないだ文字列となります。
1つも値が選択されていない場合はカンマの数は0、1つでも値が選択されている場合は「趣味の数-1」となるので上記の式で選択されている数が求められるというわけです。
基本的にマルチセレクトの値にカンマを含められないため成り立っていますが、もし可能となる方法があれば別のカウント方法が必要となります。