
毎日使うデジタルノートに、「あのメモどこにしまったっけ?」と探し回った経験はありませんか? データベースに蓄積された情報が増えるほど、過去のアイデアや学習記録が埋もれがちになります。特に日記の振り返りや単語帳を使うとき、「ランダムに1件だけ表示できたら…」と感じた方も多いはずです。
従来の並び替え機能では実現できなかったこの悩み。実は関数プロパティとリレーション機能を組み合わせることで、たった3ステップで解決できます。例えば英単語学習なら、毎日異なる単語が自動抽出され、記憶定着率が向上。写真ギャラリーでは思いがけない一枚が表示され、新鮮な気分で作業できます。
この記事では、特別なツールなしで誰でも再現可能な方法を解説。数式のコピペだけで完成するシステムなので、プログラミング知識は不要です。「情報整理がもっと楽しくなる」そんな使い方を、一緒に発見しましょう。*画像はイメージです。
この記事のポイント
- データベースから1件だけ抽出する技術の核心
- 関数とリレーション機能の効果的な連携方法
- 日記・学習・コンテンツ管理での実践例
- 数式テンプレートの具体的な書き方
- 表示内容を自動更新する設定のコツ
notion ランダム表示とは?
情報が増えるほど管理が難しくなるデジタルワークスペース。「必要な時に適切なコンテンツを引き出す方法」を模索する中で生まれたのが、データベースから無作為に1件を抽出する技術です。関数プロパティとリレーション機能を融合させ、毎回異なる結果を自動生成するシステムが特徴的です。
基本概念の解説
このシステムの核心は、ページIDとタイムスタンプを組み合わせた擬似乱数生成にあります。数式を使って各項目にユニークな数字を割り当て、その値をもとにフィルタリングします。例えば「toNumber((floor(timestamp(now()) / 60000) % 1000)」という計算式で、60秒ごとに変化する数値を生成可能です。
Notionでの利用シーン
日々の学習では単語帳からランダムに問題を抽出し、記憶の定着を促進。クリエイティブ作業では過去のアイデアノートをシャッフル表示し、新たな発想を刺激します。具体的な活用例として:
- 日記の過去エントリーを偶然の出会いのように表示
- レシピデータベースから今日の献立をサプライズ選択
- プロジェクトタスクをランダムにピックアップして集中処理
Notionでランダム表示の仕組みと基本設定
デジタルデータを自在に操る裏側には、シンプルな数式と機能の連携が存在します。ここでは関数プロパティとリレーション機能を組み合わせ、動的に変化する表示システムを構築する方法を解説します。
関数プロパティとタイムスタンプの活用
基本となる数式は、ページIDと現在時刻を掛け合わせて生成します。具体的にはtoNumber((floor(timestamp(now()) / 60000) * toNumber(replaceAll(id(), “[^0-9]”, “”))) % 1000)を使用。この計算式で、各ページに固有の数値が割り当てられます。
60000という数字は更新間隔を制御します。60秒ごとに新しい数値が生成され、表示内容が自動で切り替わる仕組みです。数値を変更すれば、30秒単位や1時間単位での更新も可能になります。
リレーション・ロールアップの基本設定
2つのデータベースを連携させることで、最大値を抽出します。メインDBに「ランダムID」プロパティを作成後、別DBでリレーションを設定。ロールアップ機能で最大値のみを参照するようにします。
| 項目 | メインDB | ID抽出用DB |
|---|---|---|
| 役割 | コンテンツ保存 | 最大値検出 |
| 設定プロパティ | ランダムID生成 | リレーション+ロールアップ |
| 更新頻度 | 1分間隔 | リアルタイム同期 |
この連携により、常に最新の最大値と一致する1件だけを表示できます。フィルタ設定では「ランダムIDが最大値と等しい」条件を指定します。
ランダム表示を実現する具体手順
実際の設定フローを3つの工程に分けて解説します。重要なのは2つのデータベース連携と自動更新機能の組み合わせ。日記DBとID管理DBを準備すれば、驚くほど簡単に仕組みが完成します。
ランダムID生成プロパティの作成
メインDBで新規プロパティを「数式」タイプで作成します。入力する式はtoNumber((floor(timestamp(now()) / 60000) * toNumber(replaceAll(id(), “[^0-9]”, “”))) % 1000)。この計算で、各ページに固有の4桁番号が1分間隔で生成されます。
ID抽出用データベースの設定方法
新規DBに「ID抽出用」ページを作成。リレーション機能でメインDBと接続後、ロールアップ設定でランダムIDの最大値を抽出します。同期間隔は自動で設定されるため、特別な操作は不要です。
| 設定項目 | メインDB | ID抽出用DB |
|---|---|---|
| 主要機能 | コンテンツ管理 | 数値抽出 |
| 必須プロパティ | ランダムID | リレーション |
| 更新タイミング | 60秒間隔 | 即時反映 |
フィルタとロールアップで1件表示の実現
メインDBにチェックボックスプロパティを追加。「ランダムID = 最大値」の条件式を設定し、フィルタで「チェック済み」のみ表示します。これで毎回異なる1件が自動選択され、視覚的に分かりやすい表示が完成します。
次章では、この基本システムを複数表示や自動テンプレートに発展させる方法を紹介。あなたの使い方に合わせたカスタマイズが可能です。
応用例とカスタマイズ方法
基本機能をマスターしたら、次はあなたの使い方に合わせた進化形を試しましょう。表示件数の増加や自動化設定を加えることで、作業効率がさらに向上します。
複数表示のカスタマイズ術
2件表示したい時は、ロールアップ設定で「最大値」と「最小値」を同時に抽出。フィルタ条件を2つ設定すれば、異なる2件が自動選択されます。3件以上の場合、slice関数でページIDの別の部分を使い、2つ目のランダムIDを作成しましょう。
例えば「slice(replaceAll(id(), “[^0-9]”, “”), 1)」と入力。これで元のIDと異なる数値が生成され、3件目以降の抽出が可能になります。更新間隔を変えたい時は、数式の「60000」の部分を調整してください。
自動化で手間を削減
新規ページ作成時に設定が自動反映されるよう、テンプレート機能を活用します。プロパティ設定画面で「ID抽出用データベース」をデフォルト選択。これで毎回手動でリレーションを設定する必要がなくなります。
テンプレート適用後は、数式プロパティが自動計算。表示システムがシームレスに機能し、管理工数が半減します。この工夫で、コンテンツ作成に集中できる環境が整います。
