いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Notion)関数でチェックボックスを表示させる

 Notionのデータベースで、条件に応じてOn/Offとなるチェックボックスを表示する方法についてです。
 データ処理の上ではさほど重要ではありませんが、データベースではデータを「目立たせる」機能が乏しいのでその意味では使えるかもしれません。

  • 結果がtrue(真)またはfalse(偽)となる式や関数を記せば、結果はチェックボックスとして表示されます。

手順

 次の画像の「合否」のプロパティ(列)の値の種類は「関数」ですが、結果はチェックボックスとなっています。
 具体的には「点数」のプロパティ(列)の値を評価し、60以上の者についてチェックが入ったチェックボックスを、60未満のものについてはチェックが入っていないチェックボックスを表示させています。

 関数式

prop("点数") >= 60

 「prop("点数")」で「点数」プロパティを参照して60という数値と比較する式です。点数が60以上だったらこの式の結果はtrue(真)となりチェックが入っているチェックボックスが表示されます。60未満ならfalse(偽)なりチェックが入っていないチェックボックスが表示されます。
 このように関数で表示させているチェックボックスは、クリックでチェックのON/OFFを切り替えることができません。



 なお、比較に用いる記号(比較演算子)には次のようなものがあります。
 「==」や「!=」はExcelなどと異なる表現になっているので注意が必要です。

比較演算子
意味
A==BAとBは等しい
A!=BAとBは異なる
A>=BAはB以上
A>BAはBより大きい
A<=BAはB以下
A<BAはBより小さい



 また、largerEq関数を使って次のような式にしても同じ結果になります。

 関数式

largerEq(prop("点数"), 60)

 largerEq関数は第1引数の値が第2引数の値以上だったらtrueを、そうでなかったらfalseを返す関数です。
 ほかにもempty関数(引数の値が空ならtrue、そうでなけれがfalse)やcontains関数(第1引数の文字列が第2引数の文字列を含んでいればtrue、そうでなけれがfalse)など結果がtrueまたはfalseになる関数がいくつかあり、結果に応じてチェックボックスが表示されます。



 さらにif関数を使って次のような式にしても同じ結果になります。

 関数式

if(prop("点数") >= 60, true, false)

 if関数の第2引数(第1引数(条件)が真の場合の値)としてtrueを、第3引数(偽の場合の値)としてfalseを指定しています。
 最初の例でみたように「prop("点数") >= 60」で短く済ませられますが、true/falseという戻り値(式の結果)を直接指定している例です。



 やや本題からは外れますが注意点です。
 次の画像では「if(prop("点数") >= 60, true, "")」としています。「チェックボックスか空欄を表示させる」というつもりの式ですが、これはエラーとなり式を確定できません。

 関数では結果の値の「型」を合わせる必要があり、trueまたはfalse(これらをブール値といいます)を返す関数式は結果が必ずブール値になる必要があります。「ブール値か数値になる式」とか「日付か文字列になる式」といったものは許されません。この式は「ブール値か空の値になる式」なのでエラーとなってしまっています。
 Excelなどでは1つの式で様々な種類の値(数値や文字列など)を返すようにしても問題ありませんが、Notionの関数はこのような「型」の制約が厳しいため注意が必要です。