• ベストアンサー

INDIRECT 関数

エクセルのINDIRECT 関数とは具体的に何する為の関数ですか? ヘルプを見ると「指定される文字列への参照を返します。」と書いてあるのですが 意味が分かりません。 「sum関数は数値の合計を出す関数」 のように、一言で簡単に教えていただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.5

やっぱり、「参照を返す」なのです。 皆さんと同じ回答ですが セル セルのデータ 表示 A1  =b1     C1 B1  C1      C1  セルのデータは文字としてのC1   C1  aaa     aaa の場合 A3に、=indirect(a1) と入力すると aaa と表示されます。 何か検索で帰ってきた値を元に、どこかのセルを表示させたい時などに使います。 例えば http://pc.nikkeibp.co.jp/article/column/20120824/1060882/ http://pc.nikkeibp.co.jp/article/column/20120918/1063646/?P=3 http://pc.nikkeibp.co.jp/article/knowhow/20111206/1039439/?P=3 http://pc.nikkeibp.co.jp/article/NPC/20070614/274806/  

EDTDIRCEAPBQU
質問者

お礼

ご回答ありがとうございます。

その他の回答 (5)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.6

>「sum関数は数値の合計を出す関数」のように、一言で簡単に教えていただけませんか? 一言では説明ができないほど多能な関数です。 例えばSUM関数の合計範囲をINDITECT関数を使って書き直すと次のようになります。 =SUM(A1:A10) → =SUM(INDIRECT("A1:A10")) → =SUM(INDIRECT("A"&ROW(Z1)&":A"&ROW(Z10))) 複雑に変化する条件を1つの数式で処理できるような構成にするとき使います。

EDTDIRCEAPBQU
質問者

お礼

ご回答ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

No1です たとえば、 A B 20 2 40 3 60 1 上記のような表があったとしてB列はA列の一行目からの合計範囲の指定だとします。 C列にその結果を表示したい場合 C1=SUM(A1:A2)=60 C2=SUM(A1:A3)=120 C3=SUM(A1:A1)=20 こんな式を書いて右端の結果表示を期待します。 3行程度でしたらB列の値を見て式を書き直せばいいのですが、かなりの行数になると面倒です。 そこで C1に ="A1:A" & B1 D1に =SUM(INDIRECT(C1)) と入力して下に3行コピーします。 結果、C列には期待した値が表示されます。B列の数値が変更されたとしても何も手を加えることもありません。 =SUM(A1:A & B1) と直接描くとエラーになります。 あくまでも、たとえばの話ですので、この例についての突っ込みはなしにしてください。

EDTDIRCEAPBQU
質問者

お礼

ご回答ありがとうございます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

>エクセルのINDIRECT 関数とは具体的に何する為の関数ですか? 間接的に指定したセル座標の内容を参照する関数です。 たとえばA1にB5等のセル座標(名前付けしたものでも可)を入力しておいて =INDIRECT(A1) とすれば、A1の内容ではなく、B5の内容が表示されます。 また、文字と組み合わせるなら、A1にセル座標の1部を入力しておいて =INDIRECT("Sheet1!B"&A1) のように、Sheet1のB列の、A1で示した行の内容を表示させることが出来ます。

EDTDIRCEAPBQU
質問者

お礼

ご回答ありがとうございます。

  • Nebusoku3
  • ベストアンサー率38% (1464/3823)
回答No.2

「INDIRECT関数は文字列で指定されるセル参照を返します。」 ここで文字列とは INDIRECT関数 の後に記述された文字列のこと。 それで指定されたセルの参照データをかえします。 下記の参考URLでの値をそのまま入れて結果を見ればすぐに意味がわかると思います。 参考: http://excel.onushi.com/function/indirect.htm

EDTDIRCEAPBQU
質問者

お礼

ご回答ありがとうございます。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

B1に =INDIRECT(A1) として A1にC1と記載されていた場合、B1にC1の値が表示されます。 A1の値(参照先)を変化させることによりB1に表示する値を変化させることができます。 私の場合、参照先を指定する関数で、文字列操作関数で参照先範囲を変化させたいがそれだとエラーになる場合に、たとえばA1から下方向に参照先範囲を文字列操作関数で記載しておき、元の関数の参照先指定をINDIRECT(A1)とかにしておいて、それを下にコピーすることでA1を自動でA2,A3と変化させて、元の参照先を変化させるという使い方をしたりします。

EDTDIRCEAPBQU
質問者

お礼

ご回答ありがとうございます。

関連するQ&A