• ベストアンサー

複数シート、複数条件でのSUMPRODUCT関数について

こんにちわ。 SUMPRODUCT関数に挑戦していて上手くいかない点があるので教えていただけると助かります。 複数のシート(A,B,C)のそれぞれ同じセル範囲の中から、集計するシート内と一定条件に合致したものを抽出したいので、 =IF($A19=0,0,(SUMPRODUCT(($A19=A!$A$723:$A$769)*(A!$C$723:$AG$769))))+IF($A19=0,0,(SUMPRODUCT(($A19=B!$A$723:$A$769)*(B!$C$723:$AG$769))))+IF($A19=0,0,(SUMPRODUCT(($A19=C!$A$723:$A$769)*(C!$C$723:$AG$769)))) という式を作りました。3シート目位までは結果が正しく戻るのですが、途中でエラーが出てしまいます。全部で12シート分の条件にあったセルを合計したいのですが。 長すぎるのか、括弧のつけ方とかがあるのかと思うのですが、短くする方法がいまいちわからず困っています。 宜しくお願いします。

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.1

たとえエラーがでないとしてもそんなゴチャゴチャ式は立てるべきではありません。 後のことを考え修正などし易いように作業列を使った方がいいでしょう。 例えば、シート12枚分として、K~V列を作業列に使う。 K列  =IF($A19=0,0,(SUMPRODUCT(($A19=A!$A$723:$A$769)*(A!$C$723:$AG$769)))) L列  IF($A19=0,0,(SUMPRODUCT(($A19=B!$A$723:$A$769)*(B!$C$723:$AG$769)))) 以下同じようにしておきSUMで合計する  =SUM(K19:V19)  ’合計範囲は適宜修正 以上。  

mustarfa
質問者

お礼

そうですね。 シートが大きいので、何とか一つのセル内でおさめようと思いましたが、おっしゃるとおり修正を考えるとその方が良いと思いました。 やってみて、うまくいきました。 ありがとうございました。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

逆転の発想ですが次の方法は如何でしょうか。 集計するシート名をZ、対象シートをA~Lとします。 (1)各A~Lシート側の固定セル位置に=IF(Z!$A19=0,0,SUMPRODUCT((Z!$A19=$A$723:$A$769)*$C$723:$AG$769))を設定 (2)仮に集計シートのB19セルに=SUM('A:L'!固定セル)で串刺し集計

mustarfa
質問者

お礼

ありがとうございます。 A~Lのシートがかなり大きくて、それ以外にも抽出したいところがあるので、計算用列を作ることにしました。 ありがとうございました。

関連するQ&A