• ベストアンサー

複数の条件での合計を出したいのです

エクセルの関数を使い 条件セル E2の値 条件の検索範囲の列Dから抜き出し その行のG列-H列-I列(G列の空白の時の値)の合計を出したい つまり E2=2の時 D列   G列 H列 I列 1行 1 2 2 2行 2 3 1 1 3行 2 2 2 答えは 3-1-2-2 こんな事を実現したいのですが 頭がグルグルしてしまってます ご指南ください。

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

# 作表は 半角スペースを使うと崩れてしまいます 数式でやるなら =SUMIF(D1:D3,E2,G1:G3) - SUMIF(D1:D3,E2,H1:H3) - SUMPRODUCT((D1:D3=E2)*(G1:G3="")*(I1:I3)) VBAでやるなら 標準モジュールに Function myCalc(ByVal n as integer, rD as Range, rG as Range, rH as Range, rI as Range) as Integer   dim sum as integer, i as integer   Dim sum As Integer, i As Integer   If rD.Rows.Count <> rG.Rows.Count Or _     rH.Rows.Count <> rI.Rows.Count Or _     rD.Rows.Count <> rH.Rows.Count Then       Err.Raise 13   End If   sum = 0   For i = 1 To rD.Rows.Count     If rD(i, 1).Value = n Then       sum = sum + rG(i, 1).Value       sum = sum - rH(i, 1).Value       If rG(i, 1).Value = "" Then         sum = sum - rI(i, 1).Value       End If     End If   Next   myCalc = sum End Function として セルへの数式は =myCalc(E2,D1:D3,G1:G3,H1:H3,I1:I3) といった具合でしょう

tompapa56
質問者

お礼

どうも ありがとう御座いました。 SUMPRODUCT関数ですよね ?? やはり 良く理解できていないようで はまっていました すっきりです!! いつも ご指南頂きありがとう御座います。

関連するQ&A