ダウンロード

名前の動的な表の参照

参照する表が1種類であれば、簡単な入力規則とVLOOKUP関数を使用して表引きが出来ますが、
区分に応じて参照する表が異なるため工夫が必要です。

ここでは、セル範囲を「名前」で参照できる機能を使用して、区分に応じた票を参照できるように機能を実現します。

メニュー
問題
完成例
解答例
名前の変更・削除
名前の一括作成
サンプルファイルのダウンロード
リンクリスト
解答を 全て展開 折り畳む

問題

下図のように、ここでの見積書には商品区分に応じた3種類の表があります。
それぞれの区分に応じた表の品番を入力規則リストから選択できるようにします。
完成例参照

あわせて、「品名」「単価」を自動で表示するようにします。右下図



完成例


区分に応じた品番の入力リストが表示されます。


解答例


入力リストの作成

区分に応じた品番の入力リストが表示されるようにします。

具体的には、B16に と入力されたら「区分A」 C16:C21 の入力リストが表示

区分A の C16:C21 に「区分リストA」という名前を付けます。
以降、「C16:C21」 のアドレスだけでなく「区分リストA」という名前で参照できます。
この「名前で参照」する機能は後々、非常に大きな力を発揮することになります。

"区分リストA"の最後尾"A"が区分に対応するように名前を工夫します。


1.まず、C16:C21 を選択

2.数式バーの「名前ボックス」(通常はセルアドレスが表示されている)に表示されている「C16」を消去して、
  "区分リストA"と入力し、Enterを押します。
  これでセル範囲 C16:C21 に"区分リストA"という名前が作成されました。

  C16:E21 を選択すると"区分A"と名前ボックスに表示されることで確認可

同様に、
セル範囲C25:C30に"区分リストB"、C34C39に"区分リストC"
の名前を付けます。


間違って入力した場合などに、名前の修正削除を行いたい場合は、後記「名前の変更・削除」を参照してください。




3.セル範囲C16:C21を選択して入力規則のダイアログを表示

4.入力の種類に「リスト」、元の値に「=区分リストA」と入力し、「OK」をクリック

5.セルC6をクリックすると入力リストが表示されることを確認
  これで、名前で参照された入力規則が作成されました。

INDIRECT関数

ただし、これだけでは特に「名前」を付ける必要性はありません。
お気付きの通り、これでは、常に「区分A」のリストしか表示されません。

実際に行いたいのは、区分に応じたリスト(Bを入力したら区分Bのリスト)が表示されるようにすることです。

ここで、INDIRECT関数が登場します。

INDIRECT("区分リストA")とすると、戻り値は"区分リストA"という名前に対応するセル範囲が返ります。
引数は"区分リストA"という文字列なので、加工が可能です。

具体的には、 "区分リスト" & B6 のように区分フィールドB6の文字と結合させて"区分リストA"と言う文字列を動的に作成します。
& は、前後の文字列を連結する演算子。

引数を、INDIRECT("区分リスト" & B6) とすることでB6の内容(A〜C)の応じてリストが変化となります。


6.範囲C6:C9を選択して、左図のような入力規則を設定します。


セルC6をクリックすると、区分Aのリスト
セルC7をクリックすると、区分Bのリスト
セルC8をクリックすると、区分Cのリスト

  が表示されることを確認してください。



以上で、名前作成の作業の大枠は完了です。

VLOOKUP関数への対応

品番に応じた品名/単価を自動表示しますが、参照する表がA〜Cと変化するので、
VLOOKUP関数の中でも「名前」を参照する必要があります。

具体的には、区分でAを選択されている場合には、区分A用の表を参照。
よって、ここでは区分Aの表範囲C16:E21に"区分A"という名前を付けます。


同じく、
  区分Bの表範囲C25:E30に"区分B"
  区分Cの表範囲C34:E39に"区分C"
という名前を付けておきます。

動作確認

区分と品番に応じた品名が自動表示されるようにVLOOKUP関数で検索します。

入力規則で設定したように、「範囲」は可変となるようにINDIRECT関数でINDIRECT("区分" & B6) とします。

区分と品番を選択すると、適切な表から品名が選択されることを確認。

後作業

単価のフィールドにも同じように設定します。

必要に応じて、空白処理(区分または品番が空白の場合は何も表示しない)を施します。


名前の変更・削除

1.「数式」タブをクリックして選択する

2.「定義された名前」グループの「名前の管理」ボタンをクリック選択する

3.変更する「名前の定義」をクリックして選択する「編集」ボタンをクリックして選択する


4.「名前」欄で名前を変更
  「参照範囲」欄でセル範囲を変更

以上

以上

名前の一括作成

表の列見出し、または行見出しを利用して名前を作成することができます。

・対象の表全体を選択して「数式」タブから「選択範囲から作成」をクリック

選択範囲から名前の作成」という小さなダイアログボックスが表示されたら「上端行」のみチェックを残して「OK」をクリック。


これで、下記のようにセル範囲に名前が付けられます。

C16:C21 → 品番
D16:D21 → 品名
E16:E21 → 単価



×
PageTop