大体でIT

-ちょっと使えるネタを紹介-

大体でIT

ExcelのINDIRECT関数の使い方について、ご紹介します。INDIRECT関数に、参照するセルの文字列を入力することで、セルを参照することができます。INDIRECT関数と他の関数を組み合わせることで、最終行のセルを取得したり、表の値を検索したりすることができるので、便利です。

はじめに

この記事では、INDIRECT関数の使い方について、ご紹介します。

INDIRECT関数は、参照したいセルの「文字列」を入力することで、セルを参照することができます。

文字列は、セルの値からも組み合わせて作ることができるので、応用が利きます。

他のExcel関数と組み合わせることで、最終行を取得したり、値の検索をしたりすることができます。

では、INDIRECT関数の使い方について、解説していきます。

この記事で紹介すること

  • INDIRECT関数の使い方

目次から見たい項目へ移動すると便利ですよ。

目次

ExcelのINDIRECT関数の使い方

Excel関数で、「INDIRECT関数」の使い方について、解説していきます。

INDIRECT関数には、次のように文字列を入力して、セルを参照することができます。

「=INDIRECT(参照文字列)」

という感じです。

では、INDIRECT関数の使い方について、具体的に解説していきます。

文字列を入力してセルを参照

INDIRECT関数には、文字列を入力するとそのセルを参照することができます。

セルを参照するときは、次のように数式「=」でセルを参照しますよね。

数式でセルを参照

数式「=」でセルを参照する場合

数式でセルA3を参照すると「=A3」となります。

この「A3」を「INDIRECT関数」の中に入れると、そのセルを参照することができます。

こんな感じです。

INDIRECT関数でセルを参照

INDIRECT関数でセルを参照する

セルには、「=INDIRECT("A3")」と入力しています。

これで、セルA3を参照することができます。

なんか面倒くさい、と思いましたかね。

INDIRECT関数を使うポイントは、文字列を入力するところです。

つまり、次のように「"A" & "3"」と入力しても、セルA3を参照することができます。

文字列を&で結合する

INDIRECT関数で文字列を&で結合してセルを参照

セルに「=INDIRECT("A" & "3")」と入力しても、セルA3を参照することができます。

これだけでは、まだINDIRECT関数は、使いづらいです。

セルの値から文字列を組み立てる

次のように、セルの値から参照する文字列を組み立てると、便利になります。

セルの値から参照する文字列を組み立ててセルを参照

セルに「=INDIRECT(C2 & C3)」と入力しています。

これで、セルA3を参照することができます。

セルの値から参照する文字列を組み立ててセルを参照した結果

セルA3を参照することができました。

セルに入力する値を変えると、簡単に参照するセルを変更することができます。

こんな感じで、「INDIRECT関数」を使うと、文字列を入力すると、自由にセルを参照することができます。

名前を参照

INDIRECT関数を使うと、「名前」を参照することもできます。

やってみます。

まず、セルA3に「名前」という名前をつけます。

名前を付ける

セルA3に名前という名前をつける

数式「=」を使って、名前を参照する場合は、こんな感じです。

数式で名前を参照

数式を使って名前を参照する

数式を使って名前を参照できました。

これを、「INDIRECT関数」を使って、「名前」を参照すると、こんな感じになります。

INDIRECT関数で名前を参照

INDIRECT関数を使って名前を参照する

セルには、「=INDIRECT("名前")」と入力しています。

セルの値を使って名前を参照

このままでは、使いづらいので、セルの値から、「名前」を参照してみます。

「名前」をセルに入力して、その「名前」を「INDIRECT関数」で参照します。

セルの値から取得した値をINDIRECT関数に入力する

これで、セルに入力された値から、「名前」のセルを参照することができます。

セルに入力された値から、INDIRECT関数で名前を取得した結果

INDIRECT関数で、「名前」が取得できました。

セルの値を変更すれば、参照するセルの値を変更することができます。

別シートを参照

INDIRECT関数を使うと、別シートのセルを参照することも簡単です。

次のようにSheet2に値を入力しておきました。

別シートを作成

別シートに値を入力

この別シートのセルを参照してみます。

数式を使って参照すると、次のようになります。

数式を使って別シートを参照

数式を使って別シートのセルを参照

「=Sheet2!A1」という感じで、別シートのセルを参照できます。

この「Shee2!A1」を「INDIRECT関数」に入力します。

INDIRECT関数で別シートを参照

INDIRECT関数を使って別シートのセルを参照

INDIRECT関数で、別シートのセルを参照できました。

セルには、「=INDIRECT("Sheet2!A1")」と入力しています。

この「"Sheet2!A1"」の部分をセルから取得するようにすると、簡単に、参照する先を変更することができます。

別ブックを参照

INDIRECT関数を使うと、別ブックのセルを参照することも簡単です。

次のように「TEST.xlsx」という別ブックを用意しました。

別ブックを作成

別ブックに値を入力

この別ブックのセルを参照してみます。

数式を使って参照すると、次のようになります。

数式で別ブックを参照

数式を使って別ブックのセルを参照

「=[TEST.xlsx]Sheet1!$A$1」という感じで、別シートのセルを参照できます。

この「[TEST.xlsx]Sheet1!$A$1」を「INDIRECT関数」に入力します。

INDIRECT関数で別ブックを参照

INDIRECT関数を使って別ブックのセルを参照

INDIRECT関数で、別ブックのセルを参照できました。

セルには、「=INDIRECT("[TEST.xlsx]Sheet1!$A$1")」と入力しています。

この「"[TEST.xlsx]Sheet1!$A$1"」の部分をセルから取得するようにすると、簡単に、参照する先を変更することができます。

ただし、注意で、INDIRECT関数を使って、別ブックを参照する際は、「別ブックを開いておく」必要があります。

こんな感じで、「INDIRECT関数」に参照する文字列を入力すると、セルを参照することができます。

参照する文字列は、セルの値を使って組み合わせることもできるので、自由にセルを参照することができます。

INDIRECT関数と他関数の組み合わせ

INDIRECT関数は、他の関数と組み合わせるとさらに便利になります。

いくつか例を挙げてみます。

参照する表を切り替える(VLOOKUPとINDIRECT)

INDIRECT関数と、VLOOKUP関数を使って、2つの表を切り替えてセルを検索する、というのをやってみます。

こんな表を2つ用意しました。

2つの表を用意

表を2つ用意

表①と表②を用意しました。

2つの表に名前を付ける

上の表に、「表①」の名前をつけます。

上の表に表①の名前を付ける

下の表には、「表②」の名前を付けます。

下の表に表②の名前を付ける

「C」を検索する

VLOOKUP関数と、「表①」の中から「C」を検索します。

VLOOKUP関数で表①のAを検索する

「表①」を検索する

VLOOKUP関数の範囲には、「表①」を入力します。

VLOOKUP関数の範囲には表①を入力

「表①」を入力するには、「INDIRECT("表①")」と入力するので、セルの値を使って、「INDIRECT(D2)」と入力しています。

2列目を検索で完全一致

あとは、2列目の完全一致のFalseを入力して、VLOOKUP関数の入力を完成させます。

VLOOKUP関数で2列目と完全一致を指定

VLOOKUPとINDIRECTで検索した結果

検索結果を見てみます。

VLOOKUP関数とINDIRECT関数で表の値を検索した結果

「表①」のCの値で「300」を検索することができました。

表②の表を検索

表①から「表②」に入力を変えてみます。

VLOOKUP関数とINDIRECT関数で表の値を検索した結果

「表②」のCの値で「3000」を検索することができました。

こんな感じで、INDIRECT関数を使うと、VLOOKUP関数で検索する「表を切り替える」ことができます。

値を検索する(MATCHとINDIRECT)

次は、INDIRECT関数とMATCH関数を使って、表の中から値を検索する、というのをやってみます。

内容は、VLOOKUP関数と似た内容になります。

次の表を用意しました。

表を用意

表を用意

「う」の行数を検索したいので、「う」を入力しておきます。

検索値を入力

「う」をセルに入力

「う」をセルに入力しました。

MATCH関数で、行番号を検索

「う」の行を検索したいので、「MATCH関数」を使って、行を検索します。

MATCH関数を使って、行を検索

「う」は3行目にあるので、結果は「3」となります。

MATCH関数で検索した結果は3行目となる

INDIRECT関数で、A列の3行目を取得

この「3」を使って、INDIRECT関数で、「A列」の「3行目」を参照します。

INDIRECT関数とMATCH関数でA列の3行目を取得

入力は、「=INDIRECT("A" & D2)」というように入力します。

結果とみてみます。

INDIRECT関数とMATCH関数で表の中の値を検索した結果

結果は、「C」を取得することができました。

「う」の検索値から、「C」を取得した、という感じです。

VLOOKUP関数の逆バージョンですね。

INDIRECT関数を使うといろいろできます。

最終行のセルを参照(COUNTAとINDIRECT)

INDIRECT関数と、COUNTA関数を組み合わせて、最終行のセルを参照する、というのをやってみます。

セルに値を入力しました。

セルに値を入力

セルに値を入力

この表から、「最終行のセル」を取得してみます。

COUNTA関数でセルの個数をカウント

「COUNTA関数」を使ってセルに入力されている個数をカウントします。

COUNTA関数でセルに入力されている個数をカウント

5個のセルに文字が入力されているので、結果は「5」となります。

COUNTAの結果は「5」となる

結果は、「5」個となりました。

INDIRECT関数で最終行を取得

この「5」を使って、INDIRECT関数で最終行のセルを取得します。

INDIRECT関数で最終行のセルを取得する

セルには、「=INDIRECT("A" & C1)」と入力しています。

では、結果を見てみます。

INDIRECT関数とCOUNTA関数で最終行のセルを取得した結果

最終行のセルである、「お」を取得できました。

行と列を指定してセルを参照(ADDRESSとINDIRECT)

次は、行と列の番号を指定して、セルを参照するというのをINDIRECT関数とADRESS関数でやってみます。

次の表を用意しました。

表を用意

表を用意

この「3」行、「2」列の値を取得してみます。

3行2列を参照

INDIRECT関数とADDRESS関数で3行2列の値を取得する

セルには、「=INDIRECT(ADDRESS(D1,D2))」と入力しています。

結果をみてみます。

INDIRECT関数とVLOOKUP関数で3行2列の値を取得した結果

3行2列目の「う」を取得できました。

指定した行までの合計値を計算(SUMとINDIRECT)

指定した行までの合計値を計算するというのを、INDIRECT関数とSUM関数でやってみます。

次の表を用意しました。

表を用意

表を用意

1行目から「4」行目までの合計値を計算してみます。

指定行までの合計値を計算

INDIRECT関数とSUM関数で指定行までの合計値を計算

セルには、「=SUM(INDIRECT("A1:A" & C1))」と入力しています。

結果を見てみます。

INDIRECT関数とSUM関数で指定行までの合計値を計算した結果

結果は、「10」となりました。

4行目までの合計値を計算することができました。

INDIRECT関数、いろいろと応用が利きます。

おわりに

この記事では、INDIRECT関数の使い方について、ご紹介しました。

INDIRECT関数には、参照したいセルの「文字列」を入力することで、セルを参照することができます。

文字列は、セルの値からも組み合わせて作ることができるので、応用が利きます。

他のExcel関数と組み合わせることで、最終行を取得したり、値の検索をしたりすることができます。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す