- 公開日:
ExcelのVLOOKUP関数で$を使って別シートを参照する方法
この記事では、ExcelのVLOOKUP関数で$を使って別シートを参照する方法をご紹介します。
数式をコピーする際、検索値や範囲を固定していないと検索結果がずれて間違った値やエラーが返されてしまいます。別シートの参照は参照範囲がずれていることに気付きにくいので注意しましょう。
以下では、$を使って列や行を固定して別シートを参照する方法をご紹介します。
ExcelのVLOOKUP関数で$を使って別シートを参照する方法
数式をコピーする際に、セル参照がずれないように$をつけて列や行を固定する方法をご紹介します。

上記の左側にある表は、B2セルに入力したVLOOKUP関数をC2セルにコピーした後、B2セルとC2セルの数式を下の表にコピーしています。しかし、結果が#N/Aエラーや別の列の値になっています。B2セルの数式バーを見ると参照が固定されていないため、コピーした際に参照がずれてしまったことが考えられます。以下では、正しい結果が表示されるように適切な位置を固定していきます。

B2セルに「=VLOOKUP(」を入力します。検索値(例:A2セル)を選択し、「Fn+F4」を3回押すと列を固定することができます。今回は、下の表にも数式をコピーするのでA列の前に$をつけて列だけを固定します。

「配属先一覧」シートに移動します。①範囲(例:A1セルからD11セル)を選択して、②「Fn+F4」を1回押すと、選択したセルを固定することができます。今回は、表の範囲が変わらないので列番号と行番号をどちらも固定します。

カンマに続いて「2,」を入力します。

カンマに続いて「FALSE」を入力して、Enterを押します。今回は完全一致した値を抽出したいのでFALSEを指定しています。

「配属先検索」シートのB2セルに結果が表示されました。B2セルのフィルハンドルをドラッグして数式をコピーします。

値を抽出したい「教育担当」は4列目にあるので、C2セルの列番号を4に入れ替えます。

B2セルとC2セルを選択し、フィルハンドルをドラッグして数式をコピーします。

B2セルからC4セルに結果が表示されました。適切な位置を固定することで欲しい値を抽出することができました。
ExcelのVLOOKUP関数で$を使って複数の別シートを参照する方法
VLOOKUP関数でシート1に検索値がない場合はシート2を検索する際、数式がずれないように$を使って適切な位置を固定する必要があります。

上記の画像は、「配属先検索」シートの検索値を「配属先(男性)」シートと「配属先(女性)」シートで検索して検索値に紐づく値を抽出していますが、B2セルの数式バーを見るとセル参照が固定されていないため、B3セルに数式をコピーした際にエラーになっています。
以下では、適切な位置を固定して参照がずれないようにしていきます。

B2セルに「=IFERROR(VLOOKUP(」を入力します。検索値(例:A2セル)を選択し、「Fn+F4」を3回押すと列を固定することができます。今回は、下の表にも数式をコピーするのでA列の前に$をつけて列だけを固定します。
IFERROR関数は、値がエラーの場合にエラーではなく指定した数値や空白に置き換えて表示することができます。書式は「IFERROR(値,エラーの場合の値)」です。
IFERROR関数の詳細は以下の記事でご紹介しています。
ExcelのIFERROR関数の使い方|エラーの場合に指定した値を返す

「配属先(男性)」シートに移動します。
「①範囲(例:A2セルからE6セル)を選択して、②「Fn+F4」を1回押すと、選択したセルを固定することができます。今回は、表の範囲が変わらないので列番号と行番号をどちらも固定します。
見出し行は選択してもしなくても検索結果に影響しません。

カンマに続いて「3,」を入力します。

カンマに続いて「FALSE),」を入力します。今回は完全一致した値を抽出したいのでFALSEを指定しています。

カンマに続いて「VLOOKUP(」を入力して、1つ目のVLOOKUP関数の結果がエラーだった場合の処理方法を指定します。
今回は、「配属先(男性)」シートを検索して検索値がない場合は「配属先(女性)」シートを検索したいのでVLOOKUP関数を入力します。

「配属先検索」シートに移動します。
検索値(例:A2セル)を選択し、「Fn+F4」を3回押すと列を固定することができます。今回は、下の表にも数式をコピーするのでA列の前に$をつけて列だけを固定します。

「配属先(女性)」シートに移動します。
①範囲(例:A2セルからE6セル)を選択して、②「Fn+F4」を1回押すと、選択したセルを固定することができます。今回は、表の範囲が変わらないので列番号と行番号をどちらも固定します。

カンマに続いて「3,」を入力します。

カンマに続いて「FALSE))」を入力して、Enterを押します。
今回は完全一致した値を抽出したいのでFALSEを指定しています。

「配属先検索」シートのB2セルに結果が表示されました。
B2セルのフィルハンドルをドラッグして数式をコピーします。

B2セルからB3セルに結果が表示されました。
適切な位置を固定することで欲しい値を抽出することができました。
ExcelのVLOOKUP関数で$を使って列を可変させて別シートを参照する方法
数式をコピーしてほかの列のデータを抽出する際、列番号は可変しないので手動で列番号を入力するのは手間がかかります。
以下では、列番号が自動で可させてVLOOKUP関数で別シートを参照する方法をご紹介します。
詳細は以下の記事「ExcelのVLOOKUP関数で別シートの範囲を参照する方法」セクションでご紹介しています。
ExcelのVLOOKUP関数で別シートの範囲を参照する使い方
$を使って様々な固定をする方法
数式をコピーする際、適切な位置を固定することは非常に重要です。
どこに$をつければいいのか迷った場合は、固定したい列や行の前に$をつけると固定することができると覚えておくと便利です。
例えば、A2セルで列を固定した場合は$A2と入力するとA列を固定できます。
$の詳しい使い方は以下の記事でご紹介しています。