【Notion】データベースで自動採番をしてみた

Notionのデータベースでバケットリストを作成していたところ、壁にぶちあたりました。

今何個目まで書いたのかぱっと見てわからん!行番号を設定したい!

けど行番号の設定方法がわからん!!!

どうやら2022年9月現在、Notionのデータベースには行番号を自動で設定する「自動採番機能」が実装されていないようです。

手入力で一つずつ1,2,3と設定している人も多いのではないでしょうか?

ということで今回はNotionのデータベースに行番号を自動で設定する方法をご紹介します。

完成形はこんな感じ

どどん。

どうです!かっこいいでしょ!

まわりに自慢したくなりません?!

内容を説明すると、

項目を新規追加すると自動で左端の「No」に行番号が設定されています。

そして項目を削除すると行番号が自動で繰り上がります。

(No.9まで項目がある時、No.8の項目を削除すると、No.9だった項目がNo.8に繰り上がる)

てな感じです。

※項目追加したときに一瞬だけ行番号が”0″と表示されていますが、まばたき2,3回している間にちゃんと採番されますのでご安心を!!

Notionを使いこなすなら

実際にやってみる

早速、自動採番を設定していきます。

今回設定するデータベースはこちら。

名前・タグ・達成チェックボックスの3つのプロパティを持っています。

図にオレンジ色枠で示した通り、左端に行番号を追加したい、そんな状態です。

1. 新規データベースを作成する

自動採番のためには、採番対象のデータベースとリンクする別のデータベースが必要です。

どういうこと?って思いますよね。わかります…私もそうでした。

悩むよりも手を動かしていこうスタイルで、ひとまず何も考えずに手順を進めます。

下の図をご覧ください。

「Master_やりたいことリスト」データベースを新規で作成しました。

設定したプロパティは「名前(種類:タイトル)」と「child(種類:リレーション)」の2つ。

「名前」はデータベースを新規作成すると初めから存在していると思うので、説明を割愛します。

「child」は<プロパティを編集>から、上の図内①~④を設定してください。

①~④の設定内容について

①:Masterデータベース上のリレーションプロパティの名称

②:採番対象のデータベースを選択

③:ONにする

④:自動採番をしたいデータベース上のリレーションプロパティの名称

※①・④は少し難しい内容かもしれません。あまり深く考えず、上の図と同じようにそれぞれchild/masterと設定してOKです。

プロパティの設定後、「名前」:masterの項目を1行追加します。

この時、「child」プロパティには何も設定しないでください。

2. 採番対象データベースにidを設定

一つ前の手順を終えると、採番対象のデータベースに新たなプロパティが自動で追加されます。

下図のオレンジ枠部分が自動で追加されたプロパティです。

この自動で追加されたプロパティは今は特にすることがないのでそのまま放置します。

続いて、別のプロパティを追加します。

追加するプロパティの種類は関数、設定する関数はid()です。

設定すると下図のように、各行へ長い長い英数字が自動で入力されます。

この入力された長い英数字はNotionが自動で割り振るランダムな値です。なので値の内容が何であろうと特に気にする必要はありません!

3. テンプレートの設定

idの設定が終わったら、次はテンプレートの設定です。

採番対象のデータベースの右上あたりに青色の「新規」というボタンがあります。

その「新規」ボタンの右側にある三角マークを押し、下図のように「新規テンプレート」を押します。

※もしすでにテンプレートがある場合は、新規ではなく、今お使いのテンプレートを編集でも大丈夫です。

すると、テンプレートの編集画面が開きます。

リレーションのプロパティ(矢印マーク・下図ではmasterという名前)に値を設定します。

値を設定することで、手順1で作成したMasterデータベースへリンクさせることができます。

※上の図のLink a page部分に表示される”master”は、手順1の最後にMasterデータベースへ追加した行です。

値を設定できたら、下の図のように画面左上の「←戻る」ボタンで元の画面に戻ります。

画面を戻ると、下図のようなテンプレートの一覧が表示されています。

※もし表示されていない場合は、先ほどと同様に、青色の「新規」ボタンの右側の三角ボタンを押します!

今編集したテンプレートが新規項目に適用されるようにデフォルトに設定します。

データベースのビューは「テーブルビュー」以外にも「リストビュー」や「タイムラインビュー」など色々あります。

どのビューから項目を追加しても自動採番ができるように、すべてのビューへ設定します。

4. Masterデータベースとリンクさせる

※もし採番対象のテーブルにまだ何も登録していなければ、ここの手順は飛ばしてください。

テンプレートの設定が完了したら、既存の項目にもMasterデータベースへリンクさせます。

既存の項目は、採番対象のデータベースに登録済みのデータを指します。下図では「バンジージャンプをする」~「好きな絵を壁に飾った家に住む」までの6項目です。

リンクのやり方は手順3のテンプレート編集の時と同じです。

リレーションプロパティに値を設定します。

ここで注意したいのが、値を設定した順に行番号も設定されるという点です。

私と同じように上から順に1,2,3…と行番号を設定する人が多いと思います。その場合は、上から順に一つずつ設定していけばOKです。

そして設定が完了すると、Masterデータベースの方は下の図のようになります。

手順3で設定したテンプレートが最上部にあり、その下には採番対象テーブルの既存項目が上から順に並んでいます。

5. Masterデータベースでidを読み込む

Masterデータベースに「ロールアップ」プロパティを追加します。

※「ロールアップ」を使うと「リレーション」でリンクさせた別のデータベースの情報を使用することができます。

①・②の設定内容について

①:手順1の①で設定したリレーション

②:手順2で設定したidのプロパティ名

※「計算」は初期設定の「オリジナルを表示する」のまま変更しない

設定が完了すると、上の図の黒枠のように全てのidがずらっと並びます。

ここまで来たらあともう一息です!!

6. 採番対象データベースで全idを読み込む

なぜ読み込むんだ!すでに採番対象のデータベースにはidがあるじゃないか!!

と思った方、鋭いツッコミです。

何をしたいかというと、採番対象のデータベースに各行ごとのidだけでなく、全行のidを1つにまとめた値(全id)を持たせようとしています。

各行が全idを持つことで、自分のidが全idの何番目なのかを判別できる

百聞は一見に如かず。残りの手順もやっていきましょう!

Masterデータベースに関数プロパティを追加します。

設定する関数はprop(“手順5で追加したロールアッププロパティ名”)です。

追加すると下の図のように、手順5で追加したロールアップと同じ値が設定されます。

続いて採番対象のデータベースに戻ります。

手順5と同じように、採番対象のデータベースにもロールアッププロパティを追加します。

追加すると下の図の黒枠のように、各行へ同じ値が設定されるはずです。

①・②の設定内容について

①:手順1の④で設定したリレーション

②:手順6で設定した関数のプロパティ名

※「計算」は初期設定の「オリジナルを表示する」のまま変更しない

7. 行番号を表示

ついに最後の手順です!

行番号用の関数プロパティを追加します。

設定する関数はこちら。

length(replaceAll(replaceAll(replaceAll(prop("手順6で追加したロールアッププロパティ名"), format(prop("手順2で追加した関数プロパティ名")), "T"), "[^T]*$", ""), "[^,]", ""))

そして、ここまで来たら不要なプロパティは非表示にします。

最後の仕上げに、行番号プロパティを左端へドラッグで移動させます。

完成です!!ヒャッホーーーー!

最後に

みなさんお疲れさまでした。

2つのデータベースを行き来して、7つも手順があって。

正直面倒くさいと感じた人多いんじゃないでしょうか?

そんな手間を乗り越えて最後までたどり着いたあなた。最高です。

てなわけで「Notionで自動採番をしてみた」でした。

おわり!またね!

Notionを使いこなすなら