• ベストアンサー

ExcelのINDIRECT関数について

Excelで下記の関数を入れてみたのですがエラーとなってしまいます。 =MIN(((("Sheet2!J"&$A6&":"&"Sheet2!J"&($A6+INDIRECT("Sheet2!M"&$A6)))))) 最終的にMinの計算をする段階で中身が文字列になっていることが原因のようなのですが =MIN(indirect(((("Sheet2!J"&$A6&":"&"Sheet2!J"&($A6+INDIRECT("Sheet2!M"&$A6))))))) としても結果は変わらずでした エラーを回避して計算を成立させるにはどうすればよいでしょうか?

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

INDIRECT関数を同じ式内で二重に参照するような場合は#REFエラーが表示されます(ファイルを開いていない場合と同じ状態になるわけです)。 このようなケースでは、以下のようなINDEX関数やOFFSET関数で対応するのが一般的です。 =MIN(INDEX(Sheet2!$J:$J,$A6):INDEX(Sheet2!$J:$J,$A6+INDEX(Sheet2!$M:$M,$A6)))

xnatsurou
質問者

お礼

なるほど 勉強になりました ありがとうございます!!

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

次ようにしてはどうでしょう。 =MIN(INDIRECT("Sheet2!J"&$A6&":J"&$A6+INDIRECT("Sheet2!M"&$A6)))

xnatsurou
質問者

補足

回答ありがとうございます。 試してみたのですが こちらでは ("Sheet2!J"&$A6&":J"&$A6+INDIRECT("Sheet2!M"&$A6)) までは計算され("Sheet2!J10:J100")となるのですが その次の Indirect("Sheet2!J10:J100")でエラーとなってしまうようです。。。 試しに =MIN(INDIRECT("Sheet2!J10:J100")) と入力すると計算できます indirectは重ねてはいけないなどの成約があるのでしょうか。

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

ななめよみで答えてみるので、間違っていたらごめんなさい。 シングルクォーテーション(’)の扱いをよく考えてみましょう。 あと、括弧が異様に多いのはなぜ? もう少し整理して(※)考えると良いと思います。 ※ 関数を分解して、一つずつ動作を確認してから一つの関数式に組み合わせる

xnatsurou
質問者

補足

ご指摘ありがとうございます。 括弧多かったです、すみません・・・ =MIN("Sheet2!J"&$A6&":"&"Sheet2!J"&($A6+INDIRECT("Sheet2!M"&$A6))) 上記の、("Sheet2!J"&$A6&":"&"Sheet2!J"&($A6+INDIRECT("Sheet2!M"&$A6)))までは計算できているようです そこだけ抜き出してけいさんさせると 結果が"Sheet2!J10:Sheet2!J100"となります が,その結果、最後のMinの計算が =Min("Sheet2!J10:Sheet2!J100")となるためエラーとなってしまっているようです。 Min(Sheet2!J10:Sheet2!J100)となって欲しいんですが、、、 すみませんシングルクォーテーションの扱いということですが =の前に(')をつけると計算されずにそのまま計算式を表示するものだと認識していたのですが、、、それとは違う使い方があるということですか?

関連するQ&A