Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ テーブルから動的なドロップダウンを作成 | 動的検証システム
Excelデータ検証と管理

テーブルから動的なドロップダウンを作成

メニューを表示するにはスワイプしてください

ドロップダウンを Status 列などの固定範囲に設定する方法はすでに学習済みです。しかし、この方法ではリストが増えたときに新しい項目が参照範囲外となり、ドロップダウンに表示されなくなります。

Excel テーブルを使えばこの問題は簡単に解決できます。ドロップダウンの参照元が Excel テーブルの列であれば、行を追加するたびに参照範囲が自動的に拡張されます。

参照用シートの準備

テーブルを作成する前に、リストデータを専用のシートにまとめておくのが推奨されます。これによりワークブックが整理され、リストの管理も容易になります。

ステップ 1 — 新しいシートの作成:

  1. 最後のタブの隣にある + アイコンをクリックします。
  2. 新しいタブをダブルクリックし、Lists に名前を変更します。

ステップ 2 — 最初のリストの追加:

  1. セル A1 をクリックし、ヘッダー(例:Status)を入力します。
  2. その下の行に各値を 1 セルずつ入力します:
    • A2: Open
    • A3: Closed
    • A4: Pending
  3. 列は整理された状態を保ちます(空白行や余分なスペース、セルの結合は避けます)。

ステップ3 — 範囲をExcelテーブルに変換する:

ドロップダウンをテーブルにリンクする前に、リストデータをテーブル形式にする必要があります。

  1. リスト範囲内の任意のセルをクリック;
  2. Ctrl + T(Windows)または cmd + T(Mac)を押す;
  3. 範囲を確認し、先頭行をテーブルの見出しとして使用するにチェックを入れる;
  4. OKをクリック。

Excelはテーブルに Table1 のようなデフォルト名を割り当てます。テーブルデザインタブから、Statuses など意味のある名前に変更してください。

検証でテーブル列を参照する方法

=Statuses[Status] のような構造化参照は、データ検証のソース欄に直接入力できません。Excelではこの形式が受け付けられません。そこで有効な回避策として、INDIRECT 関数を使います。これは文字列を有効な範囲参照に変換します。

手順:

  1. メインテーブルの Status 列セルを選択;
  2. データの入力規則 → 設定 → リスト を開く;
  3. 元の値=INDIRECT("Statuses") と入力;
  4. OK をクリック。

これで Statuses に新しい値を追加すると、ドロップダウンリストに即座に反映されます。名前の管理 は不要です。

Note
注意

INDIRECT は揮発性関数であり、ブックが再計算されるたびにExcelが再計算します。このような小規模な参照リストでは問題ありませんが、検証セルが多数ある大規模なブックでは動作が遅くなることがあります。その場合は名前付き範囲の利用が推奨されます。このトレードオフについては次の章で詳しく説明します。

演習

ファイル: 前のセクションと同じファイルを使用。

  1. Lists シートに移動し、Statuses テーブルの Pending の下に新しい値を追加:
    • A5: Cancelled
  2. メインシートに戻り、任意の Status セルのドロップダウンをクリック。
  3. CancelledOpenClosedPending と並んでリストに表示されることを確認。

これにより、INDIRECT 参照が有効であることが確認できます。検証ルール自体を変更しなくてもドロップダウンが更新されます。

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 2.  1

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 2.  1
some-alt