データベースの機能を拡張するNotion数式の作成方法
Notionデータベースでの数式の書き方を学んで、有用なデータを抽出したり、計算を実行したりしましょう。このガイドでは、数式の用語や記述方法、トラブルシューティングに加え、初心者向けのさまざまな例をご紹介します。
- データベース数式を使って必要な情報を表示する
- Notion数式の用語
- 数式の構成要素
- プロパティのインプット
- 関数
- Notion数式の書き方
- 1. 金額の合計を計算する
- 2. タグやユーザーの数をカウントして表示する
- 3. 2つの日付の間の期間を表示する
- 4. テキストを結合する
- 5. リレーションデータにフィルター条件を適用する
- エラーのトラブルシューティング
数式に興味はあるけれど、どこから始めたらいいか分からないと感じる人もいるかもしれません。
数式を使用すれば、データベースがさらにパワフルになります。有用なデータを抽出したり、計算を実行したり、すぐに使えるNotionのオプションをさらに超えて、自分のニーズにぴったり合った情報を示すカスタムデータベースプロパティを構築できます。
このガイドでは、数式の書き方とそのさまざまな使い方について説明します。
すでに数式をお使いですか?
データベース数式を使って必要な情報を表示する
Notionには、情報の整理と保管に役立つさまざまなデータベースプロパティがあります。数式はプロパティに入力された情報を使用して計算と演算を実行し、プロパティの力を増幅します。結果はデータベース全体に表示されるため、手動でデータを入力する時間を節約できます。
言うなれば、Notionブロックをレゴに例えるなら、数式は拡張パックです。自身のカスタムプロパティを使って、ニーズに合ったシステムを構築することが可能になります。
数式をデータベースに追加するには、プロパティメニューから「数式」を選択し、プロパティを編集
をクリックして、数式を作成します。情報を計算、変更、再フォーマットするために、数式はデータベースの行全体に適用されます。
数式の具体例をご紹介する前に、まずはNotion数式の用語の定義を解説します。
Notion数式の用語
Notionの数式はデータベース内の既存のプロパティを使ってアウトプットを生成します。スプレッドシートと異なり、Notionの数式はプロパティ全体に適用されます。
数式エディタには異なる要素があり、これを組み合わせて目的とする結果を生成します。料理の材料のようなものと考えてください。左側のメニューからこれらの材料を選択するか、上のボックスに数式を入力します。
数式の構成要素
大まかにいえば、数式は既存のデータベースプロパティに対してアクションを実行するものです。これらのアクションは、数値プロパティ同士の足し算といった単純な数学的演算から、たとえば2つの日付間の期間の割り出しなど、事前定義された複雑な関数まで多様です。
数式を作成するときは、インプット(演算または関数を実行する対象となるプロパティ)を選択して、実行したいアクションを指示する必要があります。それにより、アウトプット(結果)がデータベース上に表示されます。
プロパティのインプット
数式を始めるには、インプットが必要です。データベースプロパティ、pi
などの定数、あるいは自分で記入する数値のいずれかがインプットとなります。
データベースプロパティをインプットとして使用する場合、プロパティがどのように計算されるかによって結果が変わります。プロパティ値が異なれば、行ごとに関数が算出する結果も異なるということです。
関数
関数は、インプットに対して実行したいアクションを説明するための数式の命令です。
2つの値の掛け算や引き算、インプットの変更や再フォーマットするなど、その内容は多岐にわたります。
演算子は、算術演算子のほか、あるインプット値を別のインプット値と比べる比較演算子(たとえば、ある値のほうが大きいかどうか、ステータスプロパティが完了としてマークされているかを確認する)を使うことができます。
また連結演算子は、文字列または数値を結合します。(例:姓と名の文字列の結合)
データベース内の任意のプロパティをインプットとして選択し、次に以下の要素を使って、選択したプロパティに対して実行するアクションを指定します。
関数: より大きな数式に組み入れることができる、あらかじめ定義された数式です。これらは、すでにインプットが含まれている、より高度な演算子です。ある日付に対して指定した日数・月数・年数を加える
dateAdd()
、文字列を数値に変換するtoNumber()
、テキストを検索して一致したものを他のテキストに置き換えるreplaceAll()
などがあります。組み込み: 数式で使用できる組み込みの演算子や値です。演算子には、算術(
+
、-
など)、比較(2つの値のどちらが大きいかを表示する>
、2つの値が同じかどうかをテストする==
)、または連結(テキストを結合する+
)があります。組み込み値にはtrue
とfalse
が含まれます。ユーザーとページのメタデータ:ユーザーのメールアドレス (
person.email()
や名前(person.name()
)、個々のページブロック(block.prop<作成者>
、block.prop<最終更新日時>
)など、データベースの一部ではないメタデータを参照します。
数式のアウトプットは、データベースのプロパティ内の多くの形式を含む、次のいずれかの形式をとります。
テキスト
数値
ブール値 / チェックボックス(trueまたはfalseの値)
日付
ユーザー
ページ
リスト
作業対象のデータ型に注意してください。
Notion数式の書き方
正しい値を返す数式を記述するためには、数式の作成方法を理解する必要があります。
数式には、単純なインプットから複数の計算を組み合わせで生成される値まで、幅広い種類のものがあります。
目的とする値を生成するためには、数式に複数の要素を含める必要があります。ほとんどの数式は複数の演算を含んでおり、これらを正しくネストして順序付けしなければなりません。
ここでは、Notion数式の書き方を3つのステップに分けて解説します。
ステップ1: 成し遂げたいことを定義する
数式を書きはじめる前に、どんなアウトプットや結果を出したいのかを定義する必要があります。アウトプットは、テキストやユーザー、数値、チェックボックス、ブロック、日付など、Notion上のどの種類のデータにすることも可能です。ステップ2: 必要となるインプットを決める
希望の結果を生成するために、どんな値や情報が必要かを検討します。データベース内の既存のプロパティについて考えてみましょう。他に追加する必要があるプロパティはないですか?数式には、プロパティと演算子、関数を混在させることができます。
数式に含めることができる便利な演算子と関数には、次のようなものがあります。dateAdd
: dateAddは日付のインプットを受け取り、それに加算して新しい日付を返します。これと似た関数に、dateSubtract
とdateBetween
があります。if
: if-thenステートメントをNotion数式に記述できます。これらのステートメントには、真実性を評価する条件に加えて、then
ステートメント(条件が true の場合)とelse
ステートメント(条件が false の場合)が含まれます。contains
: 最初の引数に2番目の引数が含まれているかどうかをテストします。引数にはテキストのみ指定できます。format
:format()
を使って、日付、ブール値、数値などをテキストに再フォーマットします。
数式の全構成要素
ステップ3: 数式を記述してテストする
ヘルプセンターのドキュメントを参照して数式を作成し、出力結果をテストして、目的どおりに機能することを確認します。各ステップで目的とするアウトプットが得られるかどうか、数式を小分けにしてテストするのがおすすめです。
数式内の関数のネスティング
以上が数式の基礎になります。ここで、ご自身のデータベースでお試しいただける例を5つ紹介します。
1. 金額の合計を計算する
データベースに2つ以上のプロパティがある場合は、加算、減算、除算、乗算などの計算が行えます。
関数を使って計算すると、データを手動で入力する必要がなくなり、人為的ミスのリスクも軽減されます。
たとえば、請求管理データベースで、各請求書の正味金額を表す数値プロパティと、税率を表す数値プロパティを作成します。
次に、請求ごとの税金を計算する数式プロパティを作成します。
prop("金額") * prop("税率(%)")
別の数式プロパティを使って、正味金額に税金を追加した総額を計算します。
prop("金額") + prop("税額($)")
販売手数料の計算や、センチメートル → フィート/インチ、摂氏→華氏などの測定単位の変換など、計算にはさまざまな使い方があります。
Notion数式は、プロパティ全体に渡り計算を行います。
2. タグやユーザーの数をカウントして表示する
Notionデータベースを使用してアイデアやフィードバックを収集する場合は、各データベースアイテムへの投票数を数式で簡単にカウントできます。
新機能のアイデア、会議のトピックの提案、優先順位をつける必要があるプロダクトの更新などを含むデータベースでは、閲覧者はユーザープロパティに自分をタグ付けすることで、項目に "賛成票を投じる" ことができます。
「投票者」という名前のユーザープロパティがあるデータベースで、数式プロパティに次の数式を入力します。
length(prop("投票者"))
またはprop("投票者").length()
これにより、「投票者」プロパティに入っているユーザーの数がカウントされ、数値として表示されます。
この数式を応用して、会議やイベントの出席者数を数えたり、プロジェクトで共同作業しているユーザーの数を表示したりできます。
3. 2つの日付の間の期間を表示する
date関数を使用して、ある日付からの経過時間、将来の日付までの日数、2つの日付の間の期間などを計算します。
数式では「昨年」、「来月」、「1週間後」などの動的な日付を使用することもできます。
プロジェクトやタスクの管理データベースなら、次のような数式を使用して、プロジェクトの期限までの残存期間を算出します。
dateBetween(prop("期限"), now(), "days")
date関数の用途はさまざまです。チームのデータベースで、今日の日付から生年月日を減算してメンバーの年齢を計算したり、各メンバーの勤続年数を計算したりすることもできます。
format(round(dateBetween(now(), prop("入社日"), "days") / (365 / 12) * 10) / 10) + " か月"
4. テキストを結合する
+
演算子はテキストや数値を結合することができます。数値の場合は、結合前にまずテキストに変換されます。たとえば、姓と名が2つの列に分かれているチーム名簿データベースがあった場合、数式を使って姓と名を結合し、3つ目の「フルネーム」の列に結合した文字列を出力することができます。
prop("名") + " " + prop("姓")
また別のユースケースとしてURLの生成があります。さまざまなタグをテキストに変換し、URLに結合することでURLを生成します。下のUTMリンクジェネレーターはその一例です。
ifs(empty(prop("URL")),"", empty(prop("UTMソース")) or empty(prop("UTM媒体")) or empty(prop("UTMキャンペーン")),
"媒体名、ソース名、キャンペーン名を入力する必要があります。",
prop("URL") + "?utm_source=" + prop("UTMソース") + "&utm_medium=" + prop("UTM媒体") + "&utm_campaign=" + prop("UTMキャンペーン"))
5. リレーションデータにフィルター条件を適用する
リレーションプロパティは、あるデータベースから別のデータベースに情報を取り込みます。リレーションを介してデータベースに入力される情報に、数式を使ってフィルター条件を適用することができます。
たとえば、会議データベースにリレーションで接続されたプロジェクトデータベースを使用している場合は、関連する会議をフィルター処理して、今後予定されている会議のみを表示することができます。
たとえば、日付が「現在」より後の関連会議をフィルタリングするとしたら、以下のような関数になります。
prop("会議").filter(current.prop("日付") > now())
エラーのトラブルシューティング
数式の記述が正しくない場合は、数式の編集を完了しようとボタンをクリックするとエラーメッセージが表示されます。場合によっては、正しくないと思われる箇所についてNotionがヒントを示すことがあります。たとえば括弧や入力がない、演算子が間違っているなどです。
数式が機能しない理由がわからない場合は、次のことを試してみてください。
演算子が括弧内に正しくネストされていることを確認する: 数式に複数の関数が含まれている場合は、それぞれのアクションが分離され、括弧で囲まれていることを確認してください。
データベースのプロパティ名を正確に入力する: 数式エディタでは大文字と小文字が区別され、完全に同じ入力のみが認識されます。プロパティを参照するときは、データベース内で使っているプロパティ名を正確に入力するか、メニューから選択してください。
リストのデータ型を確認する: リストのデータ(ユーザープロパティやリレーションプロパティなど)に対して計算を行う場合は、リストの各項目に対し計算を形成することができるよう、あらかじめデータをマッピングする必要があるかもしれません。
データ型が一致していることを確認する: 数式の中で、正しいデータ型が使われていることを確認します。テキストに含まれる数値を使用して計算を実行したり、最初にフォーマットを変換しないまま数値とテキストを結合したりすることはできません。数式内にデータ型が混在している場合は、「型の不一致」というエラーメッセージが表示されることがあります。
数式をテストする: データベースに項目が1つか2つしかない場合は、数式が正しく機能しているかどうか判断できないことがあります。数式のインプット(プロパティの値)を変更したり、データベース項目を追加したりすることで、数式が正常に機能していることを確認してください。
ご不明な点はありますか?