INDIRECT関数の基本
Excel 2016・2013・2010
スポンサーリンク
スポンサーリンク

これは「&」を使った数式で、「Aという文字と2という数字をくっつけてね」という意味。
「A」がダブルクォーテーションで囲まれていますが、これは数式内の文字はダブルクォーテーションで囲むのがExcelのお約束だから。
「2」は数字で、文字ではないのでダブルクォーテーションでは囲みません。

数式を入力後、数式バーの[入力]ボタンか、キーボードの[Enter]キーを押すと、

数式の答えが表示されました!
「Aという文字と2という数字をくっつけてね」という数式を入力したので、「A」と「2」がくっついて「A2」と表示されました。
(今回はどんな数式を入力したかを分かりやすくするため、隣のセルに入力した数式を記載してみました。)
INDIRECT関数を設定してみよう

続いて今度はD3番地に、

このようなINDIRECT関数を使った数式を入力してみることにしましょう。
数式内の引数は、先ほど入力したものと全く同じですが、INDIRECT関数を通すことによってどう変わるのかを見てみます。

まずは数式を入力したいD3番地を選択し、[関数の挿入]ボタンをクリックします。

関数を指定するためのダイアログボックスが表示されるので、[関数の分類]で「すべて表示」を選択すると、すべての関数が[関数名]欄にABC順で表示されます。
今回はINDIRECT関数を使いたいので、一覧から「INDIRECT」をクリックで選択し、[OK]ボタンを押します。
ちなみに、この一覧から「INDIRECT」を選択する際、「INDIRECT」の頭文字である「I」のところまで、一瞬でスクロールする技を使うと便利です。

前のダイアログボックスで「INDIRECT」を選択して[OK]ボタンをクリックすると、このようなダイアログボックスが表示されます。
[参照文字列]欄に図のように入力してみます。
このような設定の意味については後ほどご説明しますので、まずは操作だけしてみてください。

次の[参照形式]欄にはR1C1形式というもので数式を組み立てたい方だけが必要なものなので、普段は省略するもんだと思っていただいてOKです。

関数の設定が終わったので、ダイアログボックス右下の[OK]ボタンをクリックしてみましょう。

今度は「A2」という文字が表示されるのではなく、A2番地に入力されている「焼肉定食」という文字が表示されました!
これはどういうことなのか、1つ目に入力した数式と比べながら、考えていくことにしましょう。

まず1つ目の数式は、「Aという文字と2という数字をくっつけてね」という意味だったので

単純に「A」と「2」がくっついた「A2」と表示されました。

ところがINDIRECT関数は、指定した文字を、「文字」としてではなく、数式の中で使えるような「セルの名前」として認識してねという関数。
「A」という文字と「2」という数字をくっつけると「A2」になるわけですが、それを「A2」という文字としてではなく、「A2」という名前のセル、つまり「A2番地」として認識するので、その結果、

A2番地に入力されているものが表示された、というわけです!

というわけで、INDIRECT関数の数式はこのようになります!
引数の中にセルを指定すると

練習用ファイルを操作しながらご覧いただいている方は、画面左下のシート見出しをクリックして、「Sheet2」に切り替えておきます。

このシートのA1番地には「5」という数字が、そしてA5番地には「海鮮丼」という文字が入力されています。

それではこのシートのD2番地を選択して、

今度はこのような数式を入力してみることにしましょう。

これは先ほどと同様「&」を使った数式ですが、数式の後半部分に「A1」という箇所があります。
どうしても先ほどの数式の記憶があるので、「A1」のAのところにダブルクォーテーションが付いてないじゃん!と思いそうですが、これは難しく考える必要なく、「A1」というセル番地のこと。
この数式の最初にある「A」には文字を表すダブルクォーテーションが付いていますので、最初の「A」は「Aという文字」となりますが、次に来る「A1」はA1番地をあらわすので、この数式は「Aという文字と、A1番地に入っているものをくっつけてね」という意味になります。
セルはいわば「入れもの」ですから、数式内にセル番地が指定されているときは、「そのセルに入っているもの」という風に考えるわけです。

数式を入力する際、数式のすべてを手入力しても構いませんし、「&」まで入力した後、

実際のA1番地をクリックすると、数式の「A1」の部分を手軽に入力することができます。

数式の入力が終わったら、数式バーの[入力]ボタンか、キーボードの[Enter]キーを押すと、

数式の答えが表示されました!

「Aという文字と、A1番地に入っているものをくっつけてね」という数式を入力し、

そのA1番地に入っているものは「5」なので、

「A」という文字と「5」がくっついて、

「A5」と表示されました。

続いて今度は、D3番地に、

このようなINDIRECT関数を使った数式を入力してみることにしましょう。
数式内の引数は、先ほど入力したものと全く同じですが、INDIRECT関数を通すとどう変わるかを見てみましょう。

まずは数式を入力したいD3番地を選択し、[関数の挿入]ボタンをクリックします。

関数を指定するためのダイアログボックスが表示されるので、[関数の分類]で「すべて表示」を選択してもいいですし、先ほど使ったばかりなので[最近使った関数]を選択してもいいです。
そして[関数名]欄から「INDIRECT」をクリックで選択し、[OK]ボタンをクリックします。

表示されたダイアログボックスの[参照文字列]欄に、図のように入力しますが、この時も数式のすべてを手入力しても構いませんし、

「&」まで入力した後、

実際のA1番地をクリックすると、数式の「A1」の部分を手軽に入力することができます。
[参照文字列]の設定が終わったので、ダイアログボックス右下の[OK]ボタンをクリックしてみましょう。
(重ねての解説になりますが、2つ目の引数[参照形式]は、R1C1形式というもので数式を組み立てたい方だけが必要なものなので、普段は省略するもんだと思っていただいてOKです。)

数式の答えが表示されました!
今度は「A5」という文字が表示されるのではなく、A5番地に入力されている「海鮮丼」という文字が表示されています!
これについても、1つ目の数式と比べながら、どういうことなのかを考えていきましょう。

まず1つ目の数式は、「Aという文字と、A1番地に入っているものをくっつけてね」という数式を入力し、

A1番地には「5」と入力されているので、

「A」という文字と「5」がくっついて、

「A5」と表示されました。

ところがINDIRECT関数は、指定した文字を、「文字」としてではなく、数式の中で使えるような「セルの名前」として認識してねという関数。
「A」という文字と、A1番地に入力されている「5」をくっつけると「A5」になるわけですが、それを「A5」という文字としてではなく、「A5」という名前のセル、つまり「A5番地」として認識するので、その結果、

A5番地に入力されているものが表示された、というわけです!
引数の中にセルを指定する例を、もう少し見てみよう

ここまで見ていただいたように、INDIRECT関数の引数[参照文字列]の中には、文字や数字だけでなく、セル番地を指定できることが分かりました。
そしてセル番地を指定すると、「この文字を」ではなく、「このセルに入っているもの」という考え方になるわけですね。

それでは、INDIRECT関数の引数[参照文字列]に、セル番地を指定する例を、もう少し見てみることにしましょう。
練習用ファイルを操作しながらご覧いただいている方は、画面左下のシート見出しをクリックして、「Sheet3」に切り替えておきます。

このシートのA2番地には「A4」という文字が、そしてA4番地には「プリン」という文字が入力されています。

それではこのシートのD2番地を選択して、

今度はこのような数式を入力してみることにしましょう。
これは「A2番地に入っているものを表示させてね」というセル参照の数式。

数式を入力する際、数式のすべてを手入力しても構いませんし、「=」を入力した後、

実際のA2番地をクリックすると、数式の「A2」の部分を手軽に入力することができます。

数式の入力が終わったら、数式バーの[入力]ボタンか、キーボードの[Enter]キーを押すと、

数式の答えが表示されました!

「A2番地に入っているものを表示させてね」という数式を入力し、

A2番地には「A4」という文字が入力されているので、そのとおり「A4」と表示されました。

続いて今度は、D3番地に、

このようなINDIRECT関数を使った数式を入力してみることにしましょう。
数式内の引数は、先ほど入力したものと全く同じですが、INDIRECT関数を通すとどう変わるかを見てみましょう。

まずは数式を入力したいD3番地を選択し、[関数の挿入]ボタンをクリックし、

[関数名]欄から「INDIRECT」をクリックで選択。
[OK]ボタンをクリックします。

表示されたダイアログボックスの[参照文字列]欄に、「A2」と設定しますが、この時もすべてを手入力しても構いませんし、[参照文字列]欄に文字カーソルがある状態で、

実際のA2番地をクリックしても設定できます。
[参照文字列]の設定が終わったので、ダイアログボックス右下の[OK]ボタンをクリックしてみましょう。

今度は「A4」という文字が表示されるのではなく、A4番地に入力されている「プリン」という文字が表示されました!
下記で答えがこうなった理由を考えていきましょう!

1つ目の数式は、「A2番地に入っているものを表示させてね」という数式を入力し、

A2番地には「A4」と入力されているので、そのとおり「A4」と表示されました。

ところがINDIRECT関数は、指定した文字を、「文字」としてではなく、数式の中で使えるような「セルの名前」として認識してねというという関数。
A2番地に入っていた「A4」を、「A4」という文字としてではなく、「A4」という名前のセル、つまり「A4番地」として認識するので、その結果、

A4番地に入力されているものが表示された、というわけです!
セルの名前として認識させることも!

それではもう少しINDIRECT関数について発展させていきます。
練習用ファイルを操作しながらご覧いただいている方は、画面左下のシート見出しをクリックして、「Sheet4」に切り替えておきます。

表の数字が入力されている各セルには、担当者の苗字をそれぞれのセルの名前として設定してあります。
B3番地の数字は岡田さんの数字なので、「岡田」という名前をB3番地に設定してあり、

B4番地は堤さんの数字なので、「堤」という名前をB4番地に設定してあります。
同様にB5番地、B6番地の数字にも、担当者の苗字をセルの名前として設定しています。
ここまでが前準備。

さてここで、E2番地に、

INDIRECT関数の引数としてB1番地を指定した数式を入力してみましょう。

数式を入力したいE2番地を選択し、[関数の挿入]ボタンをクリック後、INDIRECT関数を選択します。
この時点でINDIRECT関数の選択の仕方が分からない方はこれ以上進むのは危険です。
このページをもう一度最初からご覧ください。

表示されたダイアログボックスの[参照文字列]欄に「B1」と設定し、[OK]ボタンをクリックすると、

答えが表示されました!

今回、INDIRECT関数の引数に設定したのはB1番地。

そのB1番地に入力されているのは「小池」という文字。

INDIRECT関数は、指定した文字を、「文字」としてではなく、数式の中で使えるような「セルの名前」として認識してねというという関数ですから、B1番地に入っていた「小池」を、「小池」という文字としてではなく、「小池」という名前の付いたセルとして認識させてね、という関数。

この文書で「小池」という名前を設定していたセルはB6番地。

というわけで、「小池」という名前が付いているB6番地のデータが表示されたというわけです。

もし、B1番地を「堤」と修正すると、「堤」という文字を、文字としてではなくセルの名前として認識するので、その結果、「堤」という名前が付いているB4番地のデータが表示されます!
ここまでで何となくINDIRECT関数の可能性に気付いていただけたでしょうか?
最後の例を見ていただいたように、このINDIRECT関数を使うことで、状況に応じて表示させるものを変えることができます。
これをどんな風に活用するかはアイディア次第。
このサイトでも様々なアイディアをご紹介していきたいと思います!
スポンサーリンク
かつて、こんな後悔のご経験はありませんか?
もっと早くからパソコンを触っておけば...
今まさしく、あの時とは比べものにならない大きな進化が、今まで経験したことのない驚異的なスピードで私たちを巻き込んでいます。
そうです、AIです。
あの時の何倍も何十倍も大きな後悔をしないために、本当に必要な情報とテクニックが手に入る場所、それがBe Cool UsersのAI特化メンバーシップです!
Be Cool Users管理人の略歴・得意なことをまとめました!
お仕事のご依頼も「自己紹介・お仕事のご依頼につきまして」からご連絡くださいませ。
「こんなことできる?」もお気軽にご相談ください。