• ベストアンサー

ExcelのSUMIF関数で検索条件が複数あるとき

A="あ" もしくは、A="い" のときのBとCの合計を求めたいと思ってます。 SUMIF関数で計算できるのは分かったのですが、計算式が長くゴチャゴチャ しているので、もっとスマートに計算できる方法があれば、教えてください。 =SUMIF(A1:A5,"=あ",B1:B5)+SUMIF(A1:A5,"=あ",C1:C5)+SUMIF(A1:A5,"=い",B1:B5)+SUMIF(A1:A5,"=い",C1:C5)   A  B  C 1 あ 500 80 2 い 300 50 3 え 800 40 4 い 200 80 5 う 100 60

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.4

再び こんばんは >他シートに表示すると#VALUE!となってしまいます。 こちらで =SUMPRODUCT(((一覧!A1:A5="あ")+(一覧!A1:A5="い"))*一覧!B1:C5) を試した範囲では問題無く算出されます。 #VALUE!エラーは文字列を数値計算しようとした時に 発生しますから別の要因だと思います。 参照セル範囲が合っているかを確認してみて下さい。 また本来数値は入っているべきB1:C5の範囲に 文字列や=""が含まれている時も同エラーとなります。

noname#16925
質問者

お礼

ありがとうございます。上手くいきました。 数値を()で囲んでいるセルがあり、それが原因でした。

その他の回答 (3)

  • comv
  • ベストアンサー率52% (322/612)
回答No.3

みなさん こんばんは 私も1例 =SUMPRODUCT(((A1:A5="あ")+(A1:A5="い"))*B1:C5)

noname#16925
質問者

補足

回答ありがとうございます。SUMPRODUCT関数は初めて知りました。 さらに質問で申し訳ないのですが、実際は合計を他のシートに表示させています。 同一シート上ですと合計が表示されるのですが、他シートに表示すると #VALUE!となってしまいます。シート名が全角なのが問題かなと思い " を加えてみてもエラーになりよく分かりませんでした。 =SUMPRODUCT(((一覧!A1:A5="あ")+(一覧!A1:A5="い"))*一覧!B1:C5)

回答No.2

こんばんわ。 とりあえず、3分の2くらいになったと思います。 もっとひねればもっと縮小できそうですが、、 =IF(OR(SUM(A1:A5)=あ,SUM(B1:B5)=い),SUM(C1:C5)+SUM(D1:D5),0) このケースではOR関数とSUM関数の組み合わせで SUMIFの機能をまかなわせてみました。 お役に立てていただければ幸いです。

noname#16925
質問者

補足

回答ありがとうございます。 早速試してみましたが、0となり合計されませんでした。(>_<)。

  • KODAMAR
  • ベストアンサー率26% (267/1006)
回答No.1

vbaでもいいですか? #5行目以降が増えない仮定です。 [ツール]-[マクロ]-[VBEditor]で[挿入]-[標準モジュール]で以下のものをコピーしてみてください。 '-----ここから----- Sub Keisan() Dim i As Integer Dim Kigou As String Dim Goukei As Integer For i = 1 To 5 '1行目から5行目までと決まっているとする。 Kigou = Cells(i, 1) Select Case Kigou Case "あ", "い" 'a列が「あ」か「い」の場合 Goukei = Cells(i, 2) + Goukei End Select Next Range("B6") = Goukei '結果をB6に表示する。 End Sub '-----ここまで----- 上ではB列の計算しかしてません。 C列は上を参考にしながらご自分でやってみてください。

noname#16925
質問者

お礼

回答ありがとうございます。 マクロをはじめて使ってみました。 VBAもいずれは勉強したいと思っています。 分かりやすくて大変参考になりました。

関連するQ&A