NotionのFomulaで日付型と未入力を分岐で扱えるようにする - notebook

作成日
2022/08/29
カテゴリDBカテゴリ
NotionのFomulaを使って特定の条件のときは日付、それ以外のときは未入力というのをやりたかったがさっとやろうとしたらエラーですんなり定義できなかった
具体的には下記のように日付型でTerm、FomulaでCompletedAtというカラムを用意
Termがstart,end両方そろっている場合かつ1日以上経っている場合はendの日付をセットする、それ以外の場合は未入力ということをしたかった
最初下記のように式を書いた
Plain Text

エラー

が、うまくいきませんでした
  • 三項演算子
Plain Text
  • if
Plain Text
要は真と偽のどちらの場合でも型をあわせないといけないよう
end(prop("Term"))formatDateで囲って文字列として扱えば両方文字列となるので未入力も表現できるが、Date型になっていないとグループ化を用いて日付範囲でグループ化できないので不便
なのでなんとかDate型のままにしたい
ということで調べたらあった
fromTimestamp(toNumber("")) とすることで未入力でもDate型として扱うことができる
toNumber("")は数値型の戻り値だが見た目上は未入力として扱うことができる
それを用いてfromTimestampに渡してあげることでDate型でも未入力という状態を維持できる

解決

  • 三項演算子
Plain Text
  • if
Plain Text
これで冒頭のスクショの感じが再現できました
使い所それなりにありそうなのでメモとして残しておきます