• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SUMPRODUCT関数内にINDIRECT関数)

SUMPRODUCT関数内にINDIRECT関数とは?

このQ&Aのポイント
  • エクセル関数のSUMPRODUCT関数とINDIRECT関数を組み合わせて利用する場合、正しく動作しない問題が発生しています。具体的には、「18歳以下」の人数を求める式でINDIRECT関数を使用したいが、正しい結果が得られません。
  • INDIRECT関数は、文字列として表された参照範囲を実際の範囲として解釈する関数です。SUMPRODUCT関数の中でINDIRECT関数を使用する場合、指定した参照範囲が正しく認識されないことがあります。
  • 今回の問題に関しては、INDIRECT関数の引数の指定方法に誤りがある可能性があります。具体的には、式の中で参照範囲を指定する際に、範囲の始点と終点を正しく指定していないことが考えられます。正しい引数の指定方法を確認し、式を修正してみてください。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

=SUMPRODUCT((OFFSET('5期(9-2)'!$AG$1,$C$2-1,0,$F$2-$C$2+1,1)>=0)*(OFFSET('5期(9-2)'!$AG$1,$C$2-1,0,$F$2-$C$2+1,1)<=18)) とかで。

goo_kanikani
質問者

お礼

回答有難うございます できた~~~~ 凄い・・・ OFFSET関数か・・ また勉強に・・ ありがとうございます

その他の回答 (1)

回答No.2

次式は、質問文に載っている式中の、括弧の数「のみ」を修正したものです。複雑な式ですが、恐らくこの修正により、正しく機能するようになっているのではないかと思います。お試しください。 =SUMPRODUCT((INDIRECT("'5期(9-2)'!"&ADDRESS($C$2,COLUMN('5期(9-2)'!AG$1))&":"&ADDRESS($F$2,COLUMN('5期(9-2)'!AG$1)))>=0)*(INDIRECT("'5期(9-2)'!"&ADDRESS($C$2,COLUMN('5期(9-2)'!AG$1))&":"&ADDRESS($F$2,COLUMN('5期(9-2)'!AG$1)))<=18)) 自分でも直せないような数式を使うことは、お勧めしません。他人が見たら、ますます訳が分かりませんよ…。No.1さんのように分かりやすい式を書くか、素直に作業列を使って、式1本で済まそうとはしないことです。そのほうがむしろ、表計算ソフトらしい使い方という感じもします。 今回のケースに限らず、作業列を用いるだけで、複雑怪奇な数式がものすごくシンプルになるということは、ごく普通の現象なのです。また、シートの構造をちょっと作り変えたくなったりしても、対応が簡単です。複雑な数式では、直す作業も難しくなります。 私の場合、ちょっと手の込んだ計算をするときは、作業列を5個とか10個とか、たくさん用意することも珍しくありません。1本の数式しか使わない場合と比べて、遥かに複雑な処理が簡単にできます。

goo_kanikani
質問者

お礼

回答ありがとうございます こちらの式も試してみました 残念 できませんでした エラーが・・・ 元々の自分の作った式がやっぱおかしいのかも >自分でも直せないような数式を使うことは、お勧めしません。 その通りですね すみません >作業列を5個とか10個とか、たくさん用意することも珍しくありません それいいですね たしかに 色々ありがとうございます

関連するQ&A