・2種類の表から参照範囲を自動で切り替えて値を取り出す
練習用サンプルデータ(ダウンロード)
※シートは練習用と成果物(解答)の2種類あります。閲覧したい方はダウンロードして下さい。
VLOOKUP関数だけでは、1つの表を参照して値を取り出すことしかできませんが、
VLOOKUP関数に、INDIRECT関数と名前の定義を組みあわせると、複数の表を参照し、値を取り出すことができます。
(練習で実施する自動切り替えの完成図)
※beforeからafterの状態まで仕上げる過程を説明します。
サンプルは、右側の「飲み物」の表と「食べ物」の表から、単価を取り出し、左側の表の単価に自動で反映させる問題です。
練習サンプルデータは、ダウンロードファイルのシート「練習用」となります。

‘【1】2種類の表を自動で切り替えて値を取り出す方法
(1)名前の定義をつける
まず、下準備で2種類の表の「食べ物」と「飲み物」のリストを範囲選択して「名前の定義」を登録しましょう。

それでは、名前の定義の仕方から解説します。
‘①F5からG9を範囲選択してください。

‘②名前ボックスに「飲み物」と入力しENTERキーを押す
すると、F5からG9までの範囲が、「飲み物」と名前が定義されました。

「食べ物」も同様にやってみましょう。
‘③I5からJ9まで範囲選択し、「名前ボックス」に食べ物と入力しENTERキーを押す

【補足】名前の定義の管理画面を確認する方法
数式タブ→名前の管理をクリックすると、名前の管理画面が開き、
名前が定義されたものが確認できます。
ここで、削除や編集もできますし、新規作成時、名前の定義をここから登録することもできます。

‘(2)数式入力(VLOOKUP&INDIRECT)
‘①セルD4に数式「=VLOOKUP(C4,INDIRECT(B4),2,0)」を入力してください。
すると、D4に単価が表示されます。

※INDIRECT関数は
「名前の定義」で登録したセル範囲を自動で引っ張ることができる関数
範囲=INDIRECT(B4)
セルB4に「飲み物」が入力
↓
名前の定義に登録している「飲み物」のセル範囲を参照
‘②D4をコピーして、D5からD10まで貼付けましょう。
すると、区分「飲み物」「食べ物」のそれぞれの単価を参照し反映できました。

‘【2】数式の解説(INDIRECT関数&VLOOKUP関数&名前の定義)
‘(1)INDIRECT関数の公式
INDIRECT(参照文字列,参照形式)
〇参照文字列
セル参照を表す文字列(名前を定義した文字列など)
〇参照形式
A1形式ならTRUE。R1C1形式ならFALSEを指定
(省略可:省略するとA1形式とみなされます。)
A1形式を使う方がほとんどなので、基本省略で考えてよいと思います。
●A1形式は、横にA,B,C、縦に1,2,3と表示させてExcelを使っている方

●R1C1形式は、縦も横も数字で表示
縦軸(行=row)はR、横軸(列=column)をCで表現します。
一番左上のセルは”R1C1″となり、横方向に進むと「R1C2」・「R1C3」・「R1C4」
となります。縦方向に進むと「R2C1」・「R3C1」・「R4C1」となります。
(下を見ていただいたらわかるように、列がABCではなく、数字の123となっています。)

(2)VLOOKUPと組み合わせ方
‘①「D4」を選択し、「fx」をクリックすると、「関数の挿入」のダイアログボックス画面が起動されます。次に「関数の検索」でVLOOKUPと入力し、「検索開始」をクリックしてください。VLOOKUPを選択されていることを確認し、OKをクリック。

‘②VLOOKUPのダイアログボックスが起動されます。検索値にC4を選択し、
次に、「範囲」をマウスで選択してください。

‘③名前ボックスのプルダウンからINDIRECTを選択します。選択肢にない場合は、その他の関数をクリックしてください。今回はない場合で進めます。

‘④「INDIRECT」と入力し、「検索開始」をクリック。「関数名」でINDIRECTが選択されていることを確認し、「OK」

‘⑤INDIRECT関数のダイアログボックスが起動されます。「参照文字列」に、セルB4を選択しましょう。そして、数式バーのVLOOKUPの文字をクリックしましょう。
まだ、OKは押さないように。

‘⑥列番号2、検索方法0を入力しOKをクリック。

‘⑦すると数式バーに計算式が反映されました。

【4】まとめ
INDIRECT関数は、セル範囲に定義した名前と組みあわせて活用しましょう。
INDIRECT関数を効果的に使うために、名前の定義の使い方をマスターしましょう。






