- ベストアンサー
セル式・indirectで他のシートを参照
早速ですが =SUM(INDIRECT("g"&P25&":g"&P26)) 自分のシートは無問題 でも、 =SUM(INDIRECT("損益!M"&P25&":損益!M"&P26)) が #REF! となります。 p25,p26 は それぞれ 合計したい行の数値です。 最終は =SUMIF(indirect("損益!M"&q25&":損益!M" &q26,">0", "損益!M"&q25&": 損益!M"&q26))) これなのですが・・・・ どこで 間違ったのでしょうか よろしくどうぞ
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 EXCELに関するご質問として、お応えします。 直接的な答えとしては、 =SUMIF(INDIRECT("損益!M"&Q25&":M"&Q26),">0",INDIRECT("損益!M"&Q25&":M"&Q26)) または一般的に、 =SUMIF(INDIRECT("損益!M"&Q25&":M"&Q26),">0") というような結果をお求めなのかと思います。 SUMIF()関数の引数については、 第一引数と第三引数が同一のセル範囲を参照する場合、 第三引数を省略するのが通常です。 仮に、第三引数を指定する必要がある場合は、そちらも[セル範囲]を指定する必要がありますから、 [セル参照を表す文字列]を指定するのは誤りということになります。 INDIRECT()関数の引数には、ひとつ、セル参照を表す文字列を指定します。 構文上、INDIRECT()の括弧の中に、カンマで区切った複数の引数を指定するのは誤りです。 別シート上の(単一ではない)セル参照を表す方法の基本例ですが、 損益!A2:A11 のように、 「シート名」!「起点セル」:「終点セル」 という書式で書いた方が、演算上のロスも無く、エラーを起こす機会も減ります。 損益!A2:損益!A11 のように書いても多くの場合で同じ結果を返すので、絶対にダメ、とまでは言いませんが。 ご質問冒頭の数式については、 =SUM(INDIRECT("損益!M"&P25&":M"&P26))です。 この書き方の場合、P25,P26が両方とも未入力だった場合に =SUM(損益!M:M)の計算結果を返します。 例えば、 =SUM(INDIRECT("損益!M"&P25&":損益!M"&P26))のような指定をしてしまうと、 =SUM(損益!M:損益!M)という数式は成立しませんから、必然的に#REF!を返すことになります。 以上、ご参考まで。
お礼
誠に 明快 ありがとうございました。