見出し画像

【Ver2.0対応】関数の作り方も伝授!!Notionのデータベースを使いこなそう

近頃、Notionに再燃。プロジェクト管理を自分なりにわかりやすく「見える化」できて自分なりのこだわりを詰め込めるし、オフラインが若干得意になったので、思い切ってNotionに移行しようと検討する自分がいます。

ですが、一方で、Notionは、ノーコードだと言われるが如く、

「設定する項目」が多く、自由度が高すぎる

がゆえにNotionを投げてしまっている人も多いかもしれません。

Notionを勉強してるけど、データベースがいまいちよく理解できないんだよね🤔💦

というそんな方のために一緒にNotionのデータベースについて、勉強していきましょう!!

ちなみにこのページでは、以下の目指したい方のために書いています!!

☑Notionのデータベースを使いこなしたい。
☑Notionの関数を作れるようになりたい!!

では、まずは

Notionのデータベースとは何ぞや!?

から説明していきます!!

Notionの関数の書き方について知りたい場合は、下の動画を見てみてくださいね〜😉↓


【基礎】Notionのデータベースはページのかたまり

データベース→ページ…
そもそも、データベースはページの固まりである

そもそもNotionのデータベースですが、

「ページ」のかたまり


で構成されています。Notionにはサイドバーに

ページを何段階

も折り込むことができるようになっていますが、一つのブロックにページを収納しておくこともできます。そのブロックのことをデータベースを読んでいます。

それでは、データベースについて一緒に勉強していきましょう!!

データベースを作ってみよう

データベースの作り方は簡単です!!

日本語の場合は、英語の場合は、

インラインかフルページか選びましょう。あとで、簡単な表に変更可能です!!

①まずは、セミコロン「;」(日本語入力OFFの場合は、/database)を打ち、データベースと打つ。

データベースの説明1。「;…」で表示。

②インラインかフルページを選ぶ。

データベース🤔インラインかフルページか?

すると、

ちなみに、インラインとフルページの違いは、

ページ内に表示する→インライン。

新たなページとしてデータベースを作る→フルページ。

なので、

さらっと確認したい→インライン。

情報量が多く、1ページで見た方が効率がよい→フルページ

というふうに使い分けていきましょう!!

データベースのプロパティって何?

Excelアプリ。Excelの作業画面。
NotionのデータベースはExcelのセルの集まりとも取れる。

データベースはExcelの表をイメージしてもらえるとわかりやすいと思います。とすると、

A列〜○列

はNotionでいう「データベース」では何にあたるのでしょうか?それは、

「プロパティ」

と呼ばれるものです。プロパティはいろんな種類があり、

  • タイトル

  • テキスト

  • 日付

  • 数値

などいろんな形がありますが、そのほかにも、

  • 電話番号

  • メールアドレス

  • マルチセレクト(主にタグ)

  • セレクト

  • ステータス(主に進捗状況)

など様々なタグがあります。このNoteの記事では、

  • タイトル

  • テキスト

  • 日付

  • 数値

  • マルチセレクト

  • ステータス

に関して解説していきます。また、

  • 関数

についても解説します。関数ができると、

「データベースの可能性」

の幅が広がりますが、関数を操作する前にプロパティについて軽くおさらいしおておきましょう!!

タイトルはページの名前のこと

タイトルはページの名前でもある。

タイトルとテキストはよく似ていますが、唯一の違いが、

「ページ」にタイトルがのるかのらないかの違い

です。さきほど、データベースのページの集まりと解説しましたが、ページのタイトルにあたるプロパティが、

「タイトル」

です!!

テキストはメモを書くときに使う。

テキストとタイトルの違いは、ページの名前であるかどうかの違いである🤔

テキストはプロパティの一種で、

コメント

を書くときに使います。いわゆるExcelでいう

「文字列」

と同じです。

今、テンプレートで作っているデータベース、「時間記録表」では、振り返りのコメントに使っています。

日付(予定、タスク、期限など)

Notionの日付のプロパティ。開始・終了同時に入る。
日付のプロパティ。開始&終了時間にも入力が可能。もちろん、日付の直接の入力もできる。

日付のプロパティは、日時を設定できます。Notionの日付プロパティ一つで、

  • 開始日時

  • 終了日時

を指定できます。なので、わざわざ、

開始日、終了日

というふうにプロパティを分けておく必要はないでしょう。参考例に私の作ったデータベースですが、ブログなどの

「プロジェクトの期限」

に使っています。なお、日付のプロパティはリマインダーもセットしておくことができます。リマインダーをつけておくと、

なおよし!!

時間記録表のデータベース
時間記録表、プロジェクトの作業時間を記録するのもよし、生活でかかった時間を測るのもよしである🤔

私のテンプレートのデータベース、「時間記録表」では、

始まった時間〜終わった時間

を記録し、今後の時間管理に役立てるように作っていたりですとか、

ブログ下書き。プロジェクト管理に特化したデータベース
プロジェクトを作成するデータベースとさきほどの「時間記録表」と連携させることで、プロジェクトごとの時間を測るのが可能になった。

また、データベース「ブログ下書き」では、

期限

を設けることで、締め切りの管理をしやすくなるように工夫しています。

数値

「実験」のデータベース。数値を入力。
Excelに数値が入力できるようにNotionの同じように「数値」が入力できる。関数のプロパティでの計算の材料にすることができる。

こちらは何らかの数字を入力するためのものです。

時間管理のデータベースにおいて、見積もり時間を入力したり、いろいろと応用が聞くプロパティとなっています。現在この数値を応用して、

「見積もり時間」

に活用できないか検討中です!!

マルチセレクトはタグを入力するのに使う

主にタグ&ラベルをつけたりするときに使うプロパティです。セレクトとは異なり、何個も

「タグやラベルを作る」

ことができます!!なお、すでにタグを作ったものは、メニューから選ぶことができます。

マルチセレクトの実技画面。複数のタグを追加可能。
上の画面のように複数のキーワードをセットすることができる。

セレクト

セレクトの実技画面。タスクのみ入力。
セレクトはマルチセレクトとは違い、一つのキーワードしか入力できない。(候補は何個でも作成可能。)

マルチセレクトとは異なり、1つしかタグを指定することはできません。

私のデータベース「リマインダー&カレンダー」では、

「リマインダーかタスクか」

を分類するのに使っています。

ステータスはセレクトと一緒。はじめに用意されているかいないか。

よく似ているプロパティで

「ステータス」

がありますが、こちらは、はじめから

  • 未着手

  • 進行中

  • 完了

ステータスの画面。未着手、進行中、完了ごとのカテゴリがある。
ステータスは進捗状況を把握するのに良さそうだ🤔セレクトとよく似ているのでどっちにチョイスすべきか迷いがちだが、進捗状況を把握したいときはまよわずステータスを選ぼう☺️

といったものがはじめから用意されています。

リレーションを理解することで表現の幅を広げる

リレーションをつなげておくことで、

  • 関連ページ集

  • 異なるデータベース間でも数値を合計などができるようになる。

などに活かせることができます。リレーションだけでは、

「ページ同士」

をつなぐだけなので、別データベースからのプロパティを引っ張りたいと思うときもあるかもしれません。そういうときは

「ロールアップ」のプロパティ

がおすすめです!!私のデータベースでは、プロジェクトを行った特定の時間が書かれてあるのを紐付けて、

「時間管理」

に役立てています。ですが、「リレーション」だけでは、単に

「データベースの中のページをリンク」

しているのと同じことになりますので、

「ロールアップ」

を使って、リレーションで関連づけたページにある時間のプロパティを使って集計していくことになります。

「リレーション」機能

です!!

2つの異なるデータベース同士のページたちを関連付けをしておくためのプロパティ

のことであり、

一度関連付けたページ

には、ワンクリックで異なるページに飛ぶことができます。

Notionのデータベースの使い方。時間記録表のデータベースにある関連性のあるページを接続。
リレーションを追加すると、関連したページを複数追加することができる。このページでは、何時から何時までやったのかが書かれたページを関連付けている。理由の説明は後ほど。

さて、私は、リレーションをどう使っているのかといいますと、上の画像を見ると、

時間を計測・振り返るページを関連付ける

ことに使っています。そうすることで、それぞれのプロジェクトの作業が完了する時間や、プロジェクトの期限を決めやすくなりますからね。

これは、私の使っているリレーション機能の一つの例に過ぎませんので、みなさんもいろいろとリレーションについて試してみてください!!

①「+」をクリックします。

セルの一番右の+が目印

②「リレーション」を選択します。

プロパティのリレーション選択画面。

③関連付けたいデータベースを選び、 「リレーションを追加」 を選びます!!

※赤枠の上の「〇〇に表示」はONにすると、リレーション先のデータベースにも同じプロパティが共有されます!!

④関連付けたいページを選択します。(ページのプロパティからも新規追加・選択できます。)

リレーションで時間記録表のページに接続する。
同じページに関連ある「時間記録表」の確認。
すると、同じページの画面にも反映されてあることが確認できる。

すると、

以上で操作は完了です!!あとは、関連付けたいページをリレーションのプロパティで選ぶこともできますし、ページからでもページをリレーションすることも可能です!!

ロールアップでリレーションをさらにフル活用する

それでは、実際に私のテンプレートで使っているデータベースの例をもとに説明していきましょう。

1日の時間の使い道を知るだけでは、プロジェクトの合計時間を割り出すのは、非効率だと思ったので、プロジェクトを同じように**「2つ」**に設定しないといけないので、さすがに、非効率だと感じていました。

リレーションとロールアップ、これが最強コンビである!!

このデータベースではそれぞれのプロジェクトごとの時間の合計を割り出すために、

「ロールアップ」を使って、「合計」

で割り出すことによって、それぞれのプロジェクトの時間を割り出すことで、少しずつではありますが、

「期限」

を逆算できるようになりました。

さきほど、私は、リレーション機能を使って、時間を計測していると説明しましたが、単なるリレーションでは、ちょっと力不足です。時間を計算させるには、もう一つプロパティを作ることが必要です。そのプロパティは、

「ロールアップ」

と呼ばれるプロパティです。

ロールアップはさきほど、リレーションで関連付けたデータベースの数値などを使って、

  • 平均

  • 合計

  • カウント

などを計算することができます。それでは、ロールアップのやり方を説明します。

⚠POINT⚠
こちらは、私の拙テンプレートで説明しています。あらかじめリレーションでページを関連付けておくのを確認しましょう。でないと、ロールアップのプロパティに反映されません💦なお、実験のデータベースはNotionテンプレートにありませんので、ご自身でデータベースを作って実際にデータベースがどんな感じなのか試してみてください!!テンプレートのリンクは下に貼ってありますので、ぜひ、活用してみてください!!

①虫メガネのとなりの「…」をクリックし、虫メガネのロールアップをクリックする。

プロパティの追加。ロールアップをクリック。

②リレーション先を選択します。ここでは、リレーションプロパティで指定したデータベース「時間記録表」としておきました。

リレーションを時間記録表で選択。

そうすると、

🔍<タイトル>

と表示されるので、

プロパティを「かかった時間(分)」にします、計算をクリックし(①)、「合計」を選択(②)します。

プロパティを理解することは関数を使うための基礎となる

このように、ざっとNotionのプロパティについて解説しましたが、

なぜ、いきなり関数の説明にいかないんだよ🔥!!

という声が聞こえてきそうですが、そもそも、関数と呼ばれる、プロパティは

計算したり、文字と文字同士を組み合わせたりしていく

ことができるようになっています。ですので、プロパティについて理解するということは、

関数について理解する助け

となりますので、プロパティについてわからなくなったときはさらっとこのNoteに立ち返ってみて復習するようにしてください!!

今回は、個人的によく使うプロパティについて解説しましたが、Notionにはいろんなプロパティがあるので、ぜひともいろいろと調べてみて活用してみてくださいね〜😉

ビューを使いこなすことで、いろんな視点を見てみよう

そのほか、データベースにはビューといった表示も用意されています。

データベースというのは、Excelの表と同じだと、先ほど説明してきましたが、Notionではビューと呼ばれる種類があり、

プロパティを表示するのか、しないか

をコントロールすることによって、必要な情報だけをパッとチェックすることができます!!

テーブルビュー

こちらはデータベースの基本となるビューとなります。Excelの表とほぼ同じことができるとイメージしたほうが良いのかもしれません。

Notionのテーブルビュー
テーブルビュー。基本的にExcelと同じ。違うのはページの固まり。そして、プロパティとセルの違いである🤔

ボードビュー

こちらは、進捗状況や優先順位を知るのに向いたビューとなります。こちらのデータベースですが、プロパティを表示できたりするほか、優先順位をざっくりと見れるようになっています。直感的に

「ドラッグ&ドロップ」

で優先順位を変えることができるので、

「臨機応変」なプランニング

に役立てることも可能です!!

Notionのボードビューの一例。
ボードビュー。進捗状況を把握するのに向いている。

上のように期限の日時と残りの期限(関数)を表示できるようにしました。そうすることで、

プロジェクトの管理

がグンとしやすくなったように感じます☺️

カレンダービュー

Notionのカレンダービュー
カレンダービュー。1ヶ月単位で把握することができる。

カレンダービューでは、予定を1ヶ月単位でチェックするときに効果を発揮します。

えっ、カレンダーにはほかのアプリもあるよ!?

と言われるかもしれませんが、できれば、Notionから離れずにチェックしたいですよね🤔(Notionですべて完結・チェックできるのが私の将来のです。)

ビューをグループ化する

Notionには、ピボットテーブルのような機能はありませんが、近い機能はあります。それは、

「グループ」機能

呼ばれます。グループ機能は、

プロパティの共通部分をもとに、グループ化して表示する機能です。ですので、ピボットテーブルまではいかないものの、

ただし、グループごとの

合計
平均
カウント

のうちの一つしか設定できないので、たとえば、

合計と平均の共存

は無理っぽいです。

グループ化の一例。
Notionのグループ化でExcelのピボットテーブルと見ることができるが基本的に、合計・平均・カウントのいずれかしか選択できない。

やり方は、3点リーダのメニューの「グループ化」からグループの基準となるプロパティを選びます。

Notionのグループ化の操作画面。
どのプロパティを基準にグループ化すべきかを選んではじめて、グループ化ができるようになる。

などなどいろんなビューがある

Notionではいろんなビューがありますが、僕が

これは役に立つビューだな🤔

と思ったビューをリストアップしました。Notionは

一つに集約できる可能性のある

唯一のアプリだなとこのNoteを書いていて感じたことですね。

Notionの関数を理解する。

まずは、動画を見て、軽くNotionのデータベースの仕組みについて、おさらいしちゃいましょう!!

それでは、

  • プロパティ

  • ビュー

を説明してきたので、関数のプロパティについて、説明していきます!!

関数プロパティというのは、プロパティの一種で、

1行1行

に対して、プロパティの情報を参考にした上で、表示されるプロパティのことです。とはいっても、

関数式を入れなければ当然機能しません。

ということで、関数式について解説していきたいと思います!!

まずは、関数式でプロパティにアクセスしてみる

ではまず、関数式でプロパティにアクセスするためには、

prop関数

をつかいます。使い方は、

prop("[プロパティ名]")

と書きます。Excelで言えば、

「セル」

を指定するのと同じです。Notionでは、セルの代わりに

prop関数で指定するんだ

と思えば十分でしょう。

Prop関数だけを書いた関数画面
prop関数はNotionの関数の基本中の基本。関数・プロパティのメニューから表示したいプロパティをクリックすることで自動的に入力される。

prop関数を使って指定することで、結果のとなりに、

プロパティの名前

が表示されたと思います。プロパティの名前が表示されたら、OKをクリックしましょう。そうすると、

プロパティの値

が表示されていることがわかります。

でも、このままでは、

関数のプロパティって必要ないんじゃないの?

と思われるかもしれません🤔

いやいや、関数のプロパティってこれだけではないのですよ💦それでは、文字と文字の連結させることを関数で実現させるにはどうすべきかを解説していきたいと思います!!

【追記】Ver2.0からプロパティを直接入力できるようになりました。prop
関数は、Ver2.0用に自動的に修正されるので、修正は不要です。

【dateBetween関数】日付の差をもとめ、あと何日かを計算する

なお、文字列の使い方に

どうでしょうか?関数のプロパティに表示されましたでしょうか?次に日付と日付の差を求めて、

あと何日か

を求めてみましょう。そういうときは、

dateBetween関数を使います。

たとえば、下の画像のように

データベースの一例。

プロジェクト
期限

などができるデータベースがあったとします。

たとえば、

今の日付からプロジェクトの期限まであと何日

を知りたいと思ったとします。そういうときに役立つのが

dateBetween関数です。dateBetween関数で、何日かを計算したい場合、

dateBetween([開始日のプロパティ],[終了日],"days")

と入れることで、日付の差を割り出してくれる関数です。

終了日から開始日のプロパティを引き、3つ目の引数、daysで

あと何日か

を割り出しています。とはいえ、実際に入力してみないと、

あんまり実感って湧かないですよね?

そういうときは、思い切って実行してみましょう!!

1.まずは、関数のプロパティのセルをクリックし(①)、date(②)と打ち込みます。

関数の書き方1

2.「#(シャープ)」のとなりの dateBetweenをクリックします。

関数の書き方2

④dateBetweenの

  • 1番目のパラメータを "期限" と打ち込む。

  • 2番目のパラメータをnow()(現在の時刻を意味する。)と打つ。

  • 3番目のパラメータを 「days」 と入れる。(日数の単位で返すという意味。)

と入れます。ようするに、

1番目の日時ー2番目の日時

を求めて、

days→「日数」

と表示しているだけなのです!!

では、実際に入れてみましょう!!

関数の書き方3。完了ボタンが青になる。
関数の式があっていると、完了のボタンが青色に変わるので、クリックすると、関数の式が反映されるようになっている。

そうすると、

期限まであと何日か

が関数のプロパティに表示されるようになりました!!これで、何日かはわかりましたが、ここでふと思いました。

あれ!?これじゃ、単位が人目でわからないし、いつまでかわからないぞ〜〜〜🤔💦

ということで、「日」っていう単位をつけてあげたほうが親切だと思いました。

実は、

「関数の戻り値」

も追加できるのです。

ですので、パッと見で

「あと何日か」

をわかるようにしておきましょう。さて、関数式ですが、

まず、今を開始日とし、期限を最終日とします。ですので、今の時間をNotionの関数で表すと何になるかというと、

now()

となりますので、(Excelの関数と同じですね!!ただし、Excelと違ってすべて小文字です!!)

  • 開始日→now()

  • 終了日→「期限」の日付プロパティ

と書くと、

//[]はプロパティで指定します。
"あと"+dateBetween([期限の日付プロパティ]),now(),"days")+"日"

と書くことで、

「あと○日」

というふうに表示できるんですね🤔💦ということで、さきほどの関数式にちょっとアレンジをかけ、実際に関数式を組んでみました!!※期限が過ぎたら、「💥〇〇過ぎ」。期限が残っている場合は、「💣あと◯日」と表示します。

関数式のエラー。完了ボタンが半透明で押せず。
関数式があっていないと、関数式が反映されないので注意!!

【追記2024/01/08】以前はconcat関数でOKだったのですが、Notionの関数がVer2.0の仕様変更に伴い、文字列の結合の意味に変わりました。なので、concat関数よりもシンプルに書ける様になりました。単に文字列同士、""でつないだもの。「+」で繋いでいけば良いですからね🤔詳細のやり方は後の文字列同士の結合はconcatではなく、+演算子を使おうで解説していますので、お急ぎの方は、目次からそのページを飛んでみてください。

今回のケースでは、期限が過ぎていますので、ちゃんと

「◯◯過ぎ」

となっていることがわかります。

【if関数】期限内なら、あと○日、期限超過なら○日過ぎと表示したいときは?

でも、期限が過ぎたときはどうする〜ん!?💦

と思うことがあるかもしれません。そうするときに

「○日過ぎ」

表示させたほうが便利かもしれませんね🤔

リマインダーの赤字+「○日過ぎ」

と表すことで、

間に合わせなきゃ💦

と思わせることができるのではないでしょうか?処理を状況によって分ける関数はあるのでしょうか?

それは、if関数です!!

それでは、さきほどの関数式にさらに手を加えていき、プロジェクト管理をもっと

「見える化」

していきましょう!!if関数のパラメータは以下のようになります。

if([条件式],[真の場合],[偽の場合])

おっ、Excelの関数とほぼ一緒ですね😳一つずつ見ていくと、そんなに難しくないので、一緒にみていきましょう!!

まずは、条件式ですが、Excelの条件式とほぼ一緒です。

  • A>B(AはBより大きい)

  • A<B(AはBより小さい)

  • A<=B(AはB以下である)

  • A>=B(AはB以上である)

  • A==B(AはBと等しい)

  • A!=B(AはBではない)※Excelでは、A<>Bになります。

となり、場合に応じて使い分けていきましょう!!あとは、

if([条件式],[真の場合],[偽の場合])

のように、当てはめていくだけです!!さて、さきほどの実験のデータベースの期限残りのプロパティに期限を過ぎたら、

期限超過

というふうにメッセージを表示してみましょう。

//[]はプロパティです。プロパティを選択する必要があります。
"あと"+dateBetween([期限の日付プロパティ],now(),"days"),"日"

そこにif関数を挟むことによって、

「期限超過」

のメッセージを表示していきましょう!!

if([条件式],[真の場合],[偽の場合])

では先程のif関数の式に当てはめてみます!まずは、期限過ぎたら、どう処理をするのかにしておきたいので、

now() > [期限]

となります。過ぎた日数の分はマイナスになるので、「期限」と名付けられたプロパティが下となるように演算子を設けました。

では、次。期限過ぎたときの処理を真の場合に当てはめます。ここでは、「期限過ぎています。」と書きましょう。

"期限過ぎています。"

では期限が過ぎてない状態を書いてみます。期限が過ぎてない場合は、

「○日過ぎ」

と当てはめたいので、さきほど書いた上の関数を当てはめていきたいと思います!

//[]はプロパティです。プロパティを選択する必要があります。
"あと"+dateBetween([期限の日付プロパティ]),now(),"days"),"日")

あとは、カッコがちゃんと閉じているか確認して、エラーが出ないように関数を書いていきましょう。

//[]はプロパティです。プロパティを選択する必要があります。
if(now() < [期限の日付プロパティ], "期限過ぎています。", ("あと" + dateBetween(now(), [期限の日付プロパティ]), "days")), "日"))

では、期限を昨日の日付を書いて、実際にスクショを撮った結果がこちらです!!

期限のプロパティに昨日の日付を書いて、実際にスクショを撮った結果。
今は2023年1月4日。期限が2022年12月24日なので、赤枠の「期限残り」を見ると、期限が過ぎていますと表示されていることがわかります。if関数は万能ですね!!

Notionの関数がバージョン2.0にアップグレード。何が追加されたの?何が便利になったの?

記事とともに下の動画を見ればより理解が深まります😊↓

Notionの関数がVer2.0に代わり、関数などいろいろと仕様変更が加えられました。これまで関数を組んでいた方は、Ver2.0に自動的に対応しますので、後で修正しなくても良いので、そのままにしておいても大丈夫だそうです。さて、Notionの関数がVer2.0になって、以下のようなことができるようになりました。たとえば、

  • 新しい関数の追加(代表的な関数は、map、style、ifs、linkなど)

  • 関数の一部仕様変更(concatなど)

となる点が追加され、関数の表現に豊かさが生まれました。これに伴い、さらなるNotionの時間管理システムのブラッシュアップするきっかけを掴ませてくれました😊👍
でも何ができるようになったん~🥺?

とイメージがつきずらいと思われるので、もう少し何ができるようになったのかを具体的に説明していきますね😊
では、何ができるようになったのかというと、

  • リレーション先のプロパティを参照できるようになった。 

  • 関数のプロパティ内で、ハイパーリンクを貼れるようになった。 

  • ifs関数で、場合分けを書きやすくなった。  

  • 太字やアンダーライン・背景色や文字の色がつけられるようになった。 

といったことができるようになりました。おかげさまで、拙作のテンプレートの時間管理システムVer3.0への開発のモチベーションが上がるきっかけとなって良かったと感じています。

それでは、Ver2.0で追加された関数を解説。そして、今私が力を入れている時間管理に特化したNotionテンプレートに使われている関数と一緒に解説していきたいと思います。

ifs関数は場合分けの指示に便利☺️


ifs関数の図解

Notionの関数Ver.2.0になってから、ifs関数が登場しました。この関数はif関数の

「上位互換関数」 

です。書き方は、

ifs(条件式,真の場合,条件式,) 

で、Excelでのifs関数と 書き方は同じです。そうでない方は、ピンと来ないと思いますので、具体的な例をあげて解説していきたいと思います。

ifs(
  prop("点数") >= 90, "優",
  prop("点数") >= 80, "良",
  prop("点数") >= 70, "可",
  prop("点数") >= 60, “赤点”,
  "評価不明”
)

上の関数の書き方の例を見て、一見複雑そうに見えますが、一つずつ丁寧に理解すればそれほど難しい関数ではありません。
さきほど、ifs関数は 場合分けの関数とさきほどお伝えしました。ではケースごとに説明していきます。

  1. 点数が90点以上の場合。→「優」という文字を出力。

  2. 点数が80点以上の場合。→「良」という文字を出力。

  3. 点数が70点以上の場合。→「優」という文字を出力。

  4. 点数が60点以上の場合。→「赤点」と出力。

  5. それ以外。→「評価不明」と出力。

となります。

このようにifs関数はこのように場合場合に応じて処理を分岐させることができます。
もし、プログラミングについて少しでもかじったことのある人なら、

if <条件式> {<処理>}
else if <条件式>{<処理>}
...
else {<処理>}

という考え方で引数を並べていくとよいでしょう🤔

文字の装飾ならお任せ!!style関数

style関数の図解

それでは、style関数について解説していきます。style関数は簡単に言えば、

「文字を装飾する関数」

です。Excelの関数には、style関数にあたる関数はありませんが、これから丁寧に解説していきますので、このまま読み進めていただければ幸いです。
style関数の書き方は、
style("[装飾したい文字列]", "[文字の装飾の指定(たとえば文字の色、編みかけ、太さ、アンダーラインを引くかどうかなど。)]",...)  
の三つとなります。それでは、実際にいろいろとやってみましょう。

動画で見た通り、文字がちゃんと装飾されたことがわかります。みなさんもstyle関数をどんどん使って試して使っていきましょう!!

飛びたいページへひとっ飛び!!その名は…link関数🧐✨


【図解】link関数

ExcelでいうところのHYPERLINK関数ですが、if関数と組み合わせることで、たとえば、

ある特定のタグを指定すると特定のプロパティにおいて特定のページへのリンクが表示させる 

ことができます。lihk関数の書き方は、
link([Webページのアドレス]、[リンクのタイトル]) 
となります。

これを見てもlink関数ってあまり意味のない関数ちゃうん? 

私もそう思いました。

ですが、if関数などを使って場合分けをすることで、たとえば、アップロード先のSNSサイト(Youtube,Twitter,Instagramなど)を自動的に選べるようになります☺️

link関数の応用例
↑link関数にさまざまな関数を組み合わせると、特定のタグを入れたら、あらかじめ設定されたサイトのリンクを表示してくれるようになります。

文字列同士の結合はconcatではなく、+演算子を使おう

Notionの関数Ver2.0でのconcat関数は

リスト同士の結合 

に変わりました。なので、文字列同士の結合をしたいときは、

"[文字列]" + ...

というふうに結合しないといけなくなりました。Excelでは「&」演算子に当たりますが、

「&」ではなく、「+」だよ 

ということを意識していきましょう。(プログラミングをかじっている方は「+」の方がなじみやすいのかもしれません🤔)
では、実際に文字列同士をくっつけてみましょう。ちなみに、数値の場合、文字列に変換されます😊なので、

「型を意識する必要」

がなくなり、以前の書き方よりもシンプルになりました。Notionのデータベースを作り、関数のプロパティを作って以下の関数を入力してみてください。

"文字同士"+"を"+"組み合わせてみます"

すると、

Notion関数での文字列の結合

上の図のように見ている通りに表示されましたね😊

map関数でリレーション先のプロパティを取り出そう

map関数の図解

map関数と言われてもピンとこないかもしれませんが、数字や文字列をまとめて加工して表示できる関数のことを言います。

えっ!?Ver.2.0になって、違うリレーション先のページのプロパティを取れるようになったけど、どうやってやるの!? 

というときにmap関数を使います。では、map関数になれてもらうために、Notionを立ち上げ、下の手順をもとに一緒に作っていきましょう↓

1)まず、2つのデータベースを用意しましょう。1つ目のデータベースを 「思いついたことメモ」、2つ目のデータベースを 「テスト」とします。
2)次に1つ目のデータベース 「思いついたことメモ」
に2つ目のデータベースに結びつけるリレーションのプロパティを作りましょう。

map関数の例説明1

3)リレーションをさきほど作った 「テスト」 に貼りましょう。

map関数の例説明2&3

4)「リレーションを追加」をクリック(①)し、プロパティの編集の画面になったら、×をクリックしましょう。(②)


【補足】map関数の例説明

5)テストのリレーションに行き、名前を リレーション先 、タグを テスト2&テス と2つ入力し、リレーションを設定しましょう。

6)リレーション先をリレーション先と呼ばれるページを設定してみましょう。※赤枠をクリックすると追加されます。

それでは、関数のプロパティを作り、いよいよ関数を書いていきましょう。

以下の関数を書いていきます。

テスト.map(current.タグ) 

と書くと、関数に2つ目のデータベースのプロパティの値が入力されていることがわかります。そもそも、map関数はリストにおいて各要素に対し、加工ができる関数なのですが、まだ慣れないうちは、

リレーションで関連付けられたページ先のプロパティを取ることができる唯一の関数 

だと覚えておけばよいでしょう。


map関数の例を説明

すると、さきほど関数を入力したプロパティに

テスト2、テス 

と表示されていることがわかります🤔
そもそも、map関数は特定の** リスト**を一挙に加工できる関数の役割を果たします。

map関数の応用

なので、上の画像のように一斉に「か」という文字を追加することもできるのです。もちろん、数値も入れることも可能です。たとえば、「1匹、1山、1両」のようなものの数の単位づけに使うこともできますね☺️👍

let(s)関数は変数を追加できる関数

let関数の図解

let(s)関数は

変数つきで関数式をかける関数

です。

えっ!?何のこと!?わざわざ変数で束ねるなんて意味あるの? 

と最初は思われるかもしれません。そもそも、変数というのは、

「箱」 

であり、計算結果やそもそもの値を設定することができます。具体的な書き方は、

//変数が2つ以上あるときはlets。
let([変数の名前],[変数の値(または計算結果を返す関数)],[関数・式])

変数!?な~~んだあのことじゃ~ん!!

とプログラミングをやっていると、すんなりと頭に入るのですが、Excelのlet関数を使ったことがない人は

「ピン」

と来ないと思いますので、一緒に関数を書いて、関数の苦手意識を一緒に克服していきましょう!!それでは、

let(年齢,13,年齢)

書いてみましょう。

そうすると、計算結果は、
と表示されました。

えっ、たんに13を年齢に置き換えただけじゃ~~~~~ん🥺

と思われるのかもしれませんが、これが、複雑な関数を書くときに力を発揮するわけです👍

計算結果を設定できるということは情報をコンパクトにできるということを意味しており、複雑な関数を書くときに、
「変数」って便利や!!めっちゃ助かる~~😊!!
と思わせてくれるのが、let(s)関数です。Excelのlet関数との違いは、

変数が1つしかないときは→let関数 
変数が2つ以上あるときは→lets関数 

と使い分けなければいけません。でないと、下のようにエラーが出てしまいます🤔ここがExcelのlet関数と違うところですので、注意しましょう😊

【実践編】関数を書いてみよう

それでは、タグの設定に応じて、複数のリンク先を表すハイパーリンクテキストを表示させる関数のプロパティを例に応用例を解説していきたいと思います。

【Notion関数応用例】タグ付けに応じたリンクを出す。
一見複雑そうに見えるが…🤔

まずは上の画像を見てほしいのですが、さすがに見たところ、いろいろと関数が使われていて、結構入り組んでいるので、

う~~~~~ん複雑や~~~~🥺💦 

と確かに思われるのかもしれません。。。上の関数は、特定のタグが来たときに、Webページのリンクを変えるようになっています。特定のタグに合わせて、Webページのリンクを書いてくれたら、アップロードなどがはかどりますよね。でも、

頭がこんがらがる~~~~~🥺💦

と思いますので、一つずつ意味を解説していこうと思います。ここからは、応用なので、理解の難易度が上がり、

「ちょっと大変になる」

とは思いますが、コーヒーブレイクを挟みながら、リラックスしてから読みはじめてくれたらなと思います😊
まず、lets関数に注目してみてください。そもそもlet関数は、

「変数を定義できる関数」

ということでした。それでは、一つずつ変数を見ていきましょう。
まず、変数のYoutubeですが、

Youtubeという変数の説明

まずは、if関数を使い、

タグと呼ばれるプロパティに「Youtube」が含まれている場合

含まれているなら→「YouTube」と書かれたテキストにYoutubeアナリティクス(studio.youtube.com)のリンクを貼る。 
そうでなければ→空白 

と書いてあります。
if関数は、

if([条件式],[真の場合],[偽の場合])

なので、Excelの関数の書き方と一緒です😊※その他の変数、Note、Pixiv、Xも同じような意味で書かれてますので、説明は割愛させていただきます。

style関数に関するパート

さて次は、style関数を使って、文字を青く、太字で強調することで、

ハイパーリンク=リンク先 

だと 直感的にわかるように工夫をしております👍
タグの選択に応じて、

YouTubeのサイト、Nortonのサイト、pixivサイト、X(Twitter)のサイトを並べて表示

させたかったので、join関数(ExcelでいうところのTEXTJOIN関数)を使いました。join関数は、複数の文字列たちを区切り文字を使って、

「1つの文字列にする関数」

のことを言います。join関数の書き方は、

join([リスト],[区切り文字])

で書きますが、この場合の「join」と呼ばれる関数の意味は、タグの設定に応じて、

「 YoutubeかNoteかPixivを空白で並べて表示しなさい」 

ということを意味しています。なお、「空白」というスペースを設けた理由は、

見やすくかつリンクをクリックしやすくするため 

だからです。では、関数の実行結果を見てみましょう。


【実践編】複数のリンク先
↑YoutubeとNoteにタグを設定したところ、YoutubeのリンクとNoteにつなぐことができます。

まとめ

いかがでしたでしょうか?最近のNotionの進化は良い意味で

「えげつない」進化だと感じました。Notionは新料金プランを発表し、無料の範囲を拡大しました〜〜〜!!「個人」やお試しのときに最高のおともになりますね〜〜〜🥳!!

また、Notionの関数のバージョンが2.0になったことに伴い、関数のプロパティにおいて、

「より的確かつ直感的にわかりやすいメッセージ」

をユーザーに届けることができたように感じます。今後のNotionの進化が楽しみですね!!それでは、また次のNoteにお会いしましょう!!

参考資料・サイト

いいなと思ったら応援しよう!