目次
2023年9月8日、Notionの関数機能が2.0にアップデートされました🎉
Introducing: Formulas 2.0 🦾
— Notion (@NotionHQ) September 7, 2023
• Redesigned multi-line editor
• Syntax and error highlighting
• Colorful, rich data outputs
• Powerful new functions pic.twitter.com/sbrLZxT31F
この記事では関数機能を使うときの注意点と、基本的な用途のサンプルを紹介します。
Notionの関数とは
Notionの関数とは、データベースのプロパティのひとつです。
他のプロパティに基づくあらゆる種類の計算や関数を実行できます。
公式ガイド
Notion公式が案内している関数のガイドは以下になります。
関数機能で使用できる構文は以下になります。
関数の使用方法
関数の作成は以下のように行うことができます。(Notion公式より)
- データベースの
•••
メニューをクリック プロパティ
を選択して+新しいプロパティ
をクリック関数
を選択編集
をクリックして関数の作成を開始
実際に関数を使うとすると分かるのですが、思ったような操作ができないことが多々あります。
私が実際に使ってみて躓いた点について次の項目にまとめました。
Formulaを使うときの注意点
関数エディター内での改行
Notion関数の編集時は構文のサジェストが常に表示されているおり、フォーカスは構文のサジェストにあります。
Enterキーを押しても、エディター側での改行は発生しません。
そのため、エディター内で改行をしたい場合はShift+Enter
を押して行います。
出力結果のプレビュー
関数を表示する方法は2つあります。
① 関数プロパティの表示領域をクリックする
② データベースのプロパティから関数プロパティを選択→関数の編集
ボタンをクリックする
① のパターンの場合で関数の編集画面を開いたときのみ、その行の出力結果のプレビューが表示されます
出力結果のプレビュー
関数の構文を入力した時点でプレビューに出力結果が表示されて便利です。
基本的には① の方法で関数の編集を行うことをオススメします。
出力結果に改行を含める
出力結果を複数行で表示したい場合は、改行したい部分に\n
を入れます。
(例: "Hello" + "\n" + "World"
)
出力結果に改行を含める
厳密には構文内に直接改行を入れても反映されますが構文が見辛くなるため、\n
を使った改行がオススメです。
未入力のプロパティへの対応
Notionのプロパティは必須項目にすることができないため、どのプロパティも空になる可能性があります。
空のプロパティに対して特定のデータ型にしか使用できない構文を適用すると、関数プロパティには何も表示されなくなります。
例えば、以下のような関数を作成したとします。
日付が入力されているレコードでは金額 YYYYmmdd
と表示されますが、日付が入力されていないと金額も含めて何も表示されなくなります。
これを避けるためには、empty
と? :
(三項演算子)を使用して日付が入力されていないときの表示方法を定義しておきます。
以上の書き方であれば、日付が未入力の場合も金額
のみが表示されるようになります。
関数サンプル集
次に関数を使った基本的な用途のサンプルを4つ紹介します。
日付の表示形式
Notionの日付プロパティの表示形式はプロパティを変更
から変えることが可能ですが、以下の形式のみ対応しています。
- 完全な日付(
YYYY
年MM
月DD
日HH
:mm
) 月
/日
/年
日
/月
/年
年
/月
/日
- 相対(
YYYY
年MM
月DD
日HH
:mm
、直近の日付は昨日
、前の月曜日
等と表示)
例えば、「最終更新日時
プロパティから日付だけを表示したい」、「月日だけ表示したい」場合は、プロパティの設定ではできません。
そこで関数機能を使うことによって日付の表示形式を自由にカスタマイズすることができます。
使う関数はformatDate
です。
名前 | 説明 |
---|---|
formatDate | カスタム書式設定文字列を使用して日付の書式を設定します。書式設定文字列には、日付の一部を表す次のテキストを含めることができます。"YYYY" は年、"MM" は月、"DD" は日、"HH" は時、"mm" は分です。 |
書式設定文字列に文字列を指定することで表示形式をカスタマイズすることができます。
使用することができる文字列は以下のようなものがあります。
書式 | 表示 | 説明 |
---|---|---|
YYYY | 2023 | 西暦 |
YY | 23 | 西暦(下2桁) |
MM | 04 | 月(2桁で表記) |
M | 4 | 月 |
DD | 01 | 日付(2桁表記) |
D | 1 | 日付 |
HH | 22 | 時間(24時間表記、2桁表記) |
H | 9 | 時間(24時間表記) |
hh | 10 | 時間(12時間表記) |
h | 8 | 時間を12時間で表示します。1−9は1桁で表示 |
mm | 05 | 分(2桁表記) |
m | 5 | 分 |
ss | 03 | 秒(2桁表記) |
s | 3 | 秒 |
ddd dd EEE | 月 | 曜日(漢字表記) |
A a | 午後 | 午前または午後 |
z | GMT+9 | タイムゾーン |
使用例
例えば以下のような表記ができます
日付の表示形式をカスタマイズ
日付の表示形式をカスタマイズすることによって、必要な情報だけを表示することができます。
データベースの表示をすっきり見せることができるので日付プロパティは積極的に表示形式をカスタマイズしていきましょう。
リンクボタンの表示
他ページや外部サイトへのリンクを貼りたいけれど、URLは表示したくない場合はlink
とstyle
構文を使用することでリンク用のボタンを表示することができます。
名前 | 説明 |
---|---|
link | ラベルテキストとURLからハイパーリンクを作成します。 |
style | テキストに書式や色を設定します。 |
リンクボタンの表示:使用例
以下はURLプロパティのURLに対してリンクボタンを作成した例です。
リンクボタンの表示
link
でURLをリンク化してstyle
で文字色を青、背景色を灰色にすることでボタンのようにみせています。
プロパティにURLを含めてそのまま表示するとデータベースの幅を取りますし、見た目も良くありません。
URLをリンクボタンにすることで幅を節約して必要な情報だけを表示することができます。
関連データベースの情報の集計・表示
別テーブルのプロパティの集計はロールアップ機能を使うことで可能でした。
関数2.0からは関数を使用して集計を行うことが可能になりました。
さらに、複数のプロパティの値を自由に計算することができるため、今までよりも柔軟な集計を実現することができます。
使用例
以下は関連データベースの工数
のタイプ別に時間
を足して表示している例です。
タイプ別に時間を足して表示
このように関数では関連データベースのプロパティを参照して自由に表示させることができます。
複数プロパティの参照となると構文が多少は複雑になりますが、関数2.0からは改行やコメントを使えば以前よりは格段に書きやすくなっています。
入力規則バリデーション
Notionのプロパティは入力を必須にする機能や、入力値のバリデーションを行う機能はありません。
formula機能を使うと入力項目をチェックして、意図しないインプットがあった場合にエラーメッセージを出すことができます。
使用例
以下の例ではifs
構文とempty
構文を使用して、生年月日とメールアドレスが正しく入力されているかをチェックしています。
バリデーション
生年月日は未来の日付の場合に、メールアドレスはメールアドレスの正規表現に一致しない場合に、エラーメッセージを表示させるようにしています。
上記のバリデーションとデータベースのフィルター機能を使えば、入力内容に誤りがあるレコードだけを簡単に見つけることができます。
まとめ
この記事では関数機能を使うときの注意点と、基本的な用途のサンプルを紹介しました。
関数機能は今までも便利な機能でしたが、2.0になってさらにできることが増えて使い勝手も向上しました。
様々な方が関数機能を使って試行錯誤をされているので、今後はさらに新しい使い方が発見されるかもしれません。
今後もNotionの進化に目が離せません👀