Excelの関数でもよく使われるINDIRECT関数は、セルの参照を文字列で指定する関数です。セルだけではなく、他のシートも参照することができます。, VLOOKUP関数やMATCH関数など他の関数と一緒に組み合わせて使用することが多いです。INDIRECT関数の基本的な使い方から他の関数との組み合わせまで幅広く説明しています。, INDIRECT(インダイレクト)関数は、指定される文字列への参照を返す関数です。, 上図ではC3セルにINDIRECT関数の数式が入力されています。「=INDIRECT(B3)」と数式が入っており、B3セルの文字列(E4)をセル参照して「バナナ」が表示されています。, INDIRECT関数を使用すると数式を変更しないで参照したいセルを変更することができます。, 書式は「=INDIRECT(参照文字列,[参照形式])」のように記述します。少なくとも1つの引数を指定します。, ※引数(ひきすう)とは、Excelの関数を使用する際に必要な情報です。関数が結果を返すための判断材料とイメージしましょう。関数名の後の括弧「()」内に入力します。, 1番目の引数は「参照文字列」です。この引数は必須です。セル参照を表す文字列またはセル参照を指定します。, 2番目の引数は「参照形式」です。省略が可能です。参照文字列で指定されたセル参照の種類を、論理値で指定します。, A1形式は「B2」のように英字で列を、数字で行を表します。通常のExcelで使用されています。, 一方、R1C1形式は「R2C2」のようにROW(行)とCOLUMN(列)の頭文字にそれぞれ行数と列数で位置を表します。マクロ(VBA)でよく使用されます。, マクロ(VBA)を使わなければ「A1形式」なので第2引数である参照形式は省略できます。, INDIRECT関数がよく使われる別シート内にあるセルを参照する例をご紹介します。実際に手順を1つずつ説明していきます。, 例では、4つのシートを用意しました。「りんご」「バナナ」「みかん」シートにはそれぞれC2セルに価格が入力されています。INDIRECT関数を使って「集計」シートのD列に各商品の価格を表示させてみましょう。, INDIRECT関数の引数「参照文字列」として今回は各シートのC2セルを指定します。「集計」シートの【D3セル】を選択し、『=INDIRECT(C3&』と入力します。他のシートを参照する場合、「りんご!C2」のようにシート名の後に「!」を付けてセルを指定します。今回、「集計」シートのC列と他のシート名を同じにしているのでシート名を指定する際に参照します。, 「=INDIRECT(C3&」に続いて『"!C2")』と入力し、【Enter】キーを押して数式を確定します。シート名とC2セルを「&」で文字列結合しています。, INDIRECT関数を使って「りんご」シートの価格が「集計」シートのD3セルに表示されました。他の行にも数式を反映させます。D3セルの右下をD5セルまでドラッグします。, 「りんご」「バナナ」「みかん」シートに入力されている価格が「集計」シートに反映することができました。INDIRECT関数を使って1つずつ参照せずオートフィルで一括でコピーできるので便利です。, INDIRECT関数とVLOOKUP関数、MATCH関数、ADDRESS関数、SUM関数を組み合わせた例をご紹介します。, VLOOKUP関数の中にINDIRECT関数を入れ子(ネスト)にする例をご紹介します。VLOOKUP関数の引数「検索範囲」にINDIRECT関数を使用することで動的に切り替える例です。, 上図のように「りんご」と「みかん」という2つのテーブルがあります。一番上の検索テーブル内の種類と品種を入力すると「りんご」と「みかん」の2つのテーブルから検索して価格を表示させるようにしましょう。, 検索範囲が1つの場合はVLOOKUP関数だけできますが、今回は複数の範囲が切り替わります。, それぞれの範囲に名前を定義します。①B9セル~C11セルをドラッグして選択し、②名前に『りんご』と入力します。「みかん」の方にも同じように名前を付けます。, 【D4セル】を選択し、『=VLOOKUP(C4,』と入力します。VLOOKUP関数の検索値は「品種」を指定します。, 「=VLOOKUP(C4,」に続いて『INDIRECT(B4),』と入力します。VLOOKUP関数の検索範囲に「種類」を指定します。, VLOOKUP関数の列番号と検索の型を指定します。「=VLOOKUP(C4,INDIRECT(B4),」に続いて『2,FALSE)』と入力し、Enterを押します。, B4、C4セルに指定した項目を満たす検索結果をD4セルに表示させることができました。, INDIRECT関数にMATCH関数を入れ子(ネスト)にする例をご紹介します。INDIRECT関数の引数「参照文字列」にMATCH関数を使用することで参照セルを動的に切り替える例です。, 上図は下段に商品コードごとに商品名、単価が入力されています。上段のB3セルの商品コードに入力すると隣の検索結果に商品名を表示させてみましょう。, INDIRECT関数の引数「参照文字列」を指定します。価格テーブルのC7、C8、C9セルのいずれかを指定したいので文字列として「C」を指定します。『=INDIRECT("C"&』と入力します。, B3セルに入力された商品コードの位置をMATCH関数を使って求めます。「=INDIRECT("C"&」に続いて『MATCH(B3,B7:B9,0)+6)』と入力します。MATCH関数の検索値はB3セル、範囲は価格テーブルの商品コード列を指定しています。, MATCH関数の検索範囲は7行目から始まっていますので「6」を足してセルの位置を調整しています。, C3セルにINDIRECT関数とMATCH関数を組み合わせて検索した結果が表示されました。では商品コードを変更すると検索結果がどうなるか確認してみましょう。, B3セルの商品コードを「1003」に変更すると検索結果が自動的に「みかん」に切り替わりました。, ADDRESS関数はシート内のセルの位置を文字列で返します。文字列であればINDIRECT関数の引数「参照文字列」に指定すればセルの値を求めることができます。, ADDRESS(アドレス)関数は、指定したセルの参照を文字列の形式で返します。書式は「=ADDRESS(行番号,列番号,[参照の種類],[参照形式],[シート名])」のように記述します。, 上図は1から50までの数字が表になっています。行と列をI列に入力することで交差するセルの値を表示させてみましょう。, 「=INDIRECT(」に続いて『ADDRESS(I2,I3,1))』と入力します。INDIRECT関数の引数「参照文字列」にADDRESS関数を指定しています。, ADDRESS関数内では、行と列にI2、I3セルを指定することで文字列として「$B$8」が返ってきます。, H5セルにI2、I3セルで指定した行と列が交差するセル「$B$8」に入力されている「32」が表示されました。, SUM関数の中にINDIRECT関数を入れ子(ネスト)にする例をご紹介します。SUM関数の引数「範囲」にINDIRECT関数を使用することで動的に切り替える例です。, 上図は日付ごとに商品と価格が入力されています。右側には行数を入力すると左側のテーブルの価格を指定の行数までの合計を求めるとします。, G3セルを選択し、『=SUM(D3:』と入力します。SUM関数の合計したい範囲の最初はD3セルです。合計範囲の最後はG2セルに入力されている数字によって動的に切り替わるようにINDIRECT関数を使用します。, 「=SUM(D3:」に続いて『INDIRECT("D" & G2))』と入力します。D列は固定なので文字列として「D」と指定し、G2セルの行数を文字列結合しています。, G3セルに8行目までの合計結果が表示されました。動的に切り替わるかどうか確認してみましょう。, G2セルを「5」にするとG3セルが自動的に切り替わりました。左側のテーブルの5行目までの価格が合計されています。, 決まった形式の値を入力したいとき、ドロップダウンリスト(またはプルダウンリスト)は便利です。, INDIRECT関数と組み合わせることで複数のリストを連動させる方法をご紹介しています。, Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。. ここでは、もし~だったらの条件が複数ある場合、参照する複数の別シートから、値を検索して抽出しています。 if関数とvlookup関数で別シートを参照. 例では、4つのシートを用意しました。「りんご」「バナナ」「みかん」シートにはそれぞれc2セルに価格が入力されています。indirect関数を使って「集計」シートのd列に各商品の価格を表示させてみましょう。 参照文字列を指定する. ここではvlookup関数の範囲を、indirect関数でシートを指定して参照します。 ... 例「新宿店」「渋谷店」「池袋店」の各シートをvlookupで参照したい . どんなに参照先が多くても大丈夫!indirect関数とvlookup関数で参照先を振り分ける. 通常、シート名の参照は=シート名!セルのように入力し 参照文字列(必須) セル参照を表す文字列を指定する vlookup関数で複数の表を切り替えてデータを取り出す. 今回は、vlookup関数とindirect関数を使って参照先を変える方法を解説します。基本的なデータ検索ができるvlookup関数に間接的にセルを指定するindirect関数を組み合わせると、複数の参照先からデータ検索ができるようになります。複雑な条件式を考える必要もないので、数式も簡素化できます。 ©Copyright2020 MiteMiru!.All Rights Reserved. エクセルIF関数とVLOOKUP関数を、組み合わせて使うことはよくあります。IF関数の、もし~だったらの条件に一致した値を参照する範囲が、別シートにあります。このような時に、IF関数とVLOOKUP関数を組み合わせて、別シートを参照して値を返すことができます。ここでは、もし~だったらの条件が複数ある場合、参照する複数の別シートから、値を検索して抽出しています。, IF関数とVLOOKUP関数を組み合わせて、複数の別シートを参照して値を返してみましょう。, 「契約一覧」シートに、料金表から料金を抽出してみましょう。シートは4シートあります。, D2 =IF(B2=”A”,VLOOKUP(C2,料金A!$A$2:$B$11,2,FALSE),IF(B2=”B”,VLOOKUP(C2,料金B!$A$2:$B$11,2,FALSE),VLOOKUP(C2,料金C!$A$2:$B$11,2,FALSE))), エクセルIF関数は、真の場合は真の場合の値を返し、偽の場合は偽の場合の値を返す関数です。IF関数は、エクセル関数の中で使用頻度が高い関数です。他の関数と組み合わせて使用されることも多いです。, エクセルVLOOKUP関数は、指定した範囲の左端の列で検索値を探し、同じ行にある指定した列番号から値を返します。, エクセルIF関数とVLOOKUP関数を組み合わせると、別シートを参照して値を抽出できますが、もちろん、別ファイルを参照して値を返すこともできます。, IF関数は単独でもよく使いますが、他のエクセル関数とも組み合わせて使うことが多いです。その中でも、OR関数、AND関数と組み合わせは、使う頻度が高いです。色々な場面で、使う機会が多い組み合わせです。, こちらの記事もご覧ください。⇒エクセルIF関数で複数条件!OR関数、AND関数と組み合わせて使う. vlookup 関数の入った式をコピーすると、[範囲] がずれて、正しく検索されない場合があります =vlookupの式が入力された セルd3 を下へコピーする場合、 =vlookup(c4,b 9:d 13,3,false)のように [範囲] がずれて 正しく検索できません [対策]として =vlookup(c3,b8:d12,3,false)を、 作業時間:5分. vlookupとindirect関数を少し多めの表に投入 したところ非常に重くなりました。 (3000セル程度) 知っている関数だけで増築したような式のせいかと思いますが もう少し軽くすることはできないでしょうか。 excelのindirect関数で、ブック内のシートを間接的に参照する方法を紹介しています。vlookup関数・第2引数の「検索範囲」にindirect関数を使用します。 「indirect」関数を使うと、参照したいセル番地やセルの範囲を文字列として指定できる。別のシートにあるデータを1つに集約したり、「vlookup」関数と組み合わせて複数の表から特定の値を取り出せる。 書式 indirect(参照文字列,参照形式) google_ad_height = 90; BiƒTƒ“ƒvƒ‹ƒtƒ@ƒCƒ‹‚É‹LÚ‚ ‚èj, @