• ベストアンサー

エクセル関数について

エクセルでデータベースを作っています。別のシートからデータを抽出して合計を出すというものなのですが、どうも関数がうまくいきません。 別のシートには日付・現場名・費目・時間・金額などが入力されています。(オートフィルタが使われていました)そしてデータベースには現場名と費目から金額の合計を抽出したいのですが、どんな関数を使っていいのか分かりません。 =SUMPRODUCT((条件1)*(条件2)*....(集計する数値)) =SUMPRODUCT((入力!$C$3:$C$9810=Sheet1!$B3)*(入力!$G$3:$G$9810=Sheet1!C$1)*(入力!$K$3:$K$9810)) というものを使っていたのですが、別シートのデータが入力されていない所まで範囲を指定するとエラーになってしまいます。 =sumifだとエラーにならないのですが、私の技術では1つの条件(現場名だけ)しか抽出、合計できません。 入力されていない所を範囲指定してもエラーにならなくて上の事が出来る関数はないでしょうか、よろしくおねがいします。

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

  • ベストアンサー
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.1

エラーって #VALUE!エラーですか? 入力シートの K列に文字列が入っていませんか? K列に数式が入っていて、「""」で空白にしていてもそれは文字列ですよ。 ↓のように数式を修正してみてください。 =SUMPRODUCT((入力!$C$3:$C$9810=Sheet1!$B3)*(入力!$G$3:$G$9810=Sheet1!C$1),入力!$K$3:$K$9810) 最後の *(入力!$K$3:$K$9810)) を ,入力!$K$3:$K$9810) に変更。 これだとK列に文字列(「""」の空白を含む)が入っていても計算できるはずです。 なお、式を入れるシートが Sheet1なら、数式の Sheet1! は不要です。 =SUMPRODUCT((入力!$C$3:$C$9810=$B3)*(入力!$G$3:$G$9810=C$1),入力!$K$3:$K$9810)  ◇ ただ、SUMPRODUCT関数を使うには範囲が広すぎるような気がします。 もし処理が重いようなら、作業列を使って SUMIF関数で集計した方がいいかもしれません。 たとえば 入力シートの L列にでも =C3&G3 と入れ、下にコピーします。 集計は =SUMIF(入力!$L$3:$L$9810,$B3&$C1,入力!$K$3:$K$9810) のような感じで。

momoten105jp
質問者

補足

両方できました!!エクセルってすごいですねッッ大きな壁を感じました^^;ありがとうございます◎

その他の回答 (1)

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.2

>別シートのデータが入力されていない所まで範囲を >指定するとエラーになってしまいます > =sumifだとエラーにならないのですが ということですので、データが入力されていない所は数式が入っていて、その結果として空白("")になっていると思われます。 =SUMPRODUCT((入力!$C$3:$C$9810=Sheet1!$B3)*(入力!$G$3:$G$9810=Sheet1!C$1),入力!$K$3:$K$9810) ではいかがですか

momoten105jp
質問者

補足

*か,の違いで変わるなんてすごいですね!!ありがとうございます^^

関連するQ&A