Notion 関数2.0アップデート!便利な使い方や注意点まとめ

サムネイル
※当ブログの記事にはアフィリエイトリンクを使用している場合があります。

2023年9月8日、Notionの関数機能が2.0にアップデートされました🎉

この記事では関数機能を使うときの注意点と、基本的な用途のサンプルを紹介します。

Notionの関数とは

Notionの関数とは、データベースのプロパティのひとつです。
他のプロパティに基づくあらゆる種類の計算や関数を実行できます。

公式ガイド

Notion公式が案内している関数のガイドは以下になります。

関数機能で使用できる構文は以下になります。

関数の使用方法

関数の作成は以下のように行うことができます。(Notion公式より)

  1. データベースの ••• メニューをクリック
  2. プロパティを選択して+新しいプロパティをクリック
  3. 関数を選択
  4. 編集をクリックして関数の作成を開始

実際に関数を使うとすると分かるのですが、思ったような操作ができないことが多々あります。
私が実際に使ってみて躓いた点について次の項目にまとめました。

Formulaを使うときの注意点

関数エディター内での改行

Notion関数の編集時は構文のサジェストが常に表示されているおり、フォーカスは構文のサジェストにあります。
Enterキーを押しても、エディター側での改行は発生しません

そのため、エディター内で改行をしたい場合はShift+Enterを押して行います

出力結果のプレビュー

関数を表示する方法は2つあります。

① 関数プロパティの表示領域をクリックする
② データベースのプロパティから関数プロパティを選択→関数の編集ボタンをクリックする

① のパターンの場合で関数の編集画面を開いたときのみ、その行の出力結果のプレビューが表示されます

出力結果のプレビュー

出力結果のプレビュー

関数の構文を入力した時点でプレビューに出力結果が表示されて便利です。
基本的には① の方法で関数の編集を行うことをオススメします。

出力結果に改行を含める

出力結果を複数行で表示したい場合は、改行したい部分に\nを入れます
(例: "Hello" + "\n" + "World"

出力結果に改行を含める

出力結果に改行を含める

厳密には構文内に直接改行を入れても反映されますが構文が見辛くなるため、\nを使った改行がオススメです。

未入力のプロパティへの対応

Notionのプロパティは必須項目にすることができないため、どのプロパティも空になる可能性があります。
空のプロパティに対して特定のデータ型にしか使用できない構文を適用すると、関数プロパティには何も表示されなくなります

例えば、以下のような関数を作成したとします。

日付が入力されているレコードでは金額 YYYYmmddと表示されますが、日付が入力されていないと金額も含めて何も表示されなくなります

これを避けるためには、empty? :(三項演算子)を使用して日付が入力されていないときの表示方法を定義しておきます。

以上の書き方であれば、日付が未入力の場合も金額のみが表示されるようになります。

関数サンプル集

次に関数を使った基本的な用途のサンプルを4つ紹介します。

日付の表示形式

Notionの日付プロパティの表示形式はプロパティを変更から変えることが可能ですが、以下の形式のみ対応しています。

  • 完全な日付(YYYYMMDDHH:mm
  • //
  • //
  • //
  • 相対(YYYYMMDDHH:mm、直近の日付は昨日前の月曜日等と表示)

例えば、「最終更新日時プロパティから日付だけを表示したい」、「月日だけ表示したい」場合は、プロパティの設定ではできません。
そこで関数機能を使うことによって日付の表示形式を自由にカスタマイズすることができます。

使う関数はformatDateです。

名前説明
formatDateカスタム書式設定文字列を使用して日付の書式を設定します。書式設定文字列には、日付の一部を表す次のテキストを含めることができます。"YYYY" は年、"MM" は月、"DD" は日、"HH" は時、"mm" は分です。

書式設定文字列に文字列を指定することで表示形式をカスタマイズすることができます。
使用することができる文字列は以下のようなものがあります。

formatDateで使える書式(クリックで展開)
書式表示説明
YYYY2023西暦
YY23西暦(下2桁)
MM04月(2桁で表記)
M4
DD01日付(2桁表記)
D1日付
HH22時間(24時間表記、2桁表記)
H9時間(24時間表記)
hh10時間(12時間表記)
h8時間を12時間で表示します。1−9は1桁で表示
mm05分(2桁表記)
m5
ss03秒(2桁表記)
s3
ddd
dd
EEE
曜日(漢字表記)
A
a
午後午前または午後
zGMT+9タイムゾーン

使用例

例えば以下のような表記ができます

日付の表示形式をカスタマイズ

日付の表示形式をカスタマイズ

日付の表示形式をカスタマイズすることによって、必要な情報だけを表示することができます。
データベースの表示をすっきり見せることができるので日付プロパティは積極的に表示形式をカスタマイズしていきましょう。

リンクボタンの表示

他ページや外部サイトへのリンクを貼りたいけれど、URLは表示したくない場合はlinkstyle構文を使用することでリンク用のボタンを表示することができます。

名前説明
linkラベルテキストとURLからハイパーリンクを作成します。
styleテキストに書式や色を設定します。

リンクボタンの表示:使用例

以下はURLプロパティのURLに対してリンクボタンを作成した例です。

リンクボタンの表示

リンクボタンの表示

linkでURLをリンク化してstyleで文字色を青、背景色を灰色にすることでボタンのようにみせています。

プロパティにURLを含めてそのまま表示するとデータベースの幅を取りますし、見た目も良くありません。
URLをリンクボタンにすることで幅を節約して必要な情報だけを表示することができます。

関連データベースの情報の集計・表示

別テーブルのプロパティの集計はロールアップ機能を使うことで可能でした。

関数2.0からは関数を使用して集計を行うことが可能になりました。
さらに、複数のプロパティの値を自由に計算することができるため、今までよりも柔軟な集計を実現することができます。

使用例

以下は関連データベースの工数のタイプ別に時間を足して表示している例です。

タイプ別に時間を足して表示

タイプ別に時間を足して表示

このように関数では関連データベースのプロパティを参照して自由に表示させることができます。
複数プロパティの参照となると構文が多少は複雑になりますが、関数2.0からは改行やコメントを使えば以前よりは格段に書きやすくなっています。

入力規則バリデーション

Notionのプロパティは入力を必須にする機能や、入力値のバリデーションを行う機能はありません。

formula機能を使うと入力項目をチェックして、意図しないインプットがあった場合にエラーメッセージを出すことができます

使用例

以下の例ではifs構文とempty構文を使用して、生年月日とメールアドレスが正しく入力されているかをチェックしています。

バリデーション

バリデーション

生年月日は未来の日付の場合に、メールアドレスはメールアドレスの正規表現に一致しない場合に、エラーメッセージを表示させるようにしています。
上記のバリデーションとデータベースのフィルター機能を使えば、入力内容に誤りがあるレコードだけを簡単に見つけることができます。

まとめ

この記事では関数機能を使うときの注意点と、基本的な用途のサンプルを紹介しました。

関数機能は今までも便利な機能でしたが、2.0になってさらにできることが増えて使い勝手も向上しました。
様々な方が関数機能を使って試行錯誤をされているので、今後はさらに新しい使い方が発見されるかもしれません。

今後もNotionの進化に目が離せません👀

この記事をSNSで共有する

関連記事

オススメ記事

このブログを運営している人

アイコン

Webシステムエンジニア / DTMer

あっしゅからー

フリーランスでWebシステムエンジニアをやっています。

趣味ではDTMをしていて、オリジナル曲をニコニコ動画やYouTubeに投稿しています。

Copyright © 2024 あっしゅからー - All right reserved