• ベストアンサー

エクセルで複数の条件の合計

昨日入力した質問が消えてしまいましたので、再度投稿させていただきます。 A     B    C     D 1  日付   担当者名 お客  反響 2  5月1日  シバタ 佐藤まりこ   888 3  6月1日  木村  吉田よしこ   888 4  7月1日  あひる 佐々木るり   888 5  7月2日  かば  吉田まさお   888 6  7月3日  シバタ 佐藤まりこ   888 7  7月4日  木村  吉田よしこ   888 8  7月8日  あひる 佐々木るり   888 9  8月1日  かば  吉田まさお   888 上記のような表があり、例えば7/1から7/31までのシバタさんのお客が何人いるのかを知りたいのですが、関数のDSUM(A1:A9,"シバタ",countA(C2:C9))と入れると#VALUE!と出てしまいます。 どなたかご存知の方がいたら教えてください。

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

◆7/1から7/31までのシバタさんのお客が何人いるか ★同じお客さまもカウントするのであれば =SUMPRODUCT((MONTH(A2:A10)=7)*(B2:B10="シバタ")) ★同じお客さまを重複カウントしないのであれば =COUNT(1/(MATCH("7"&"シバタ"&C2:C10,MONTH(A2:A10)&B2:B10&C2:C10,0)=ROW(A1:A9))) ★この式は「配列数式」です。式を入力後、Ctrl+Shift+Enter をおして、式を確定させてください。 ★確定すると、式の両端に{ }がつきます。

dorodoron
質問者

お礼

SUMPRODUCT・・・で出来ました! ここの所これだけですごい時間をかけていたので、とても助かりました。どうもありがとうございました。

その他の回答 (2)

  • may0430
  • ベストアンサー率54% (57/104)
回答No.3

こんにちは。 ※重複カウントしない場合の方法がちょっと浮かばないのですが、、、 DSUMではなく、DCOUNTAを使用した方法をば。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー まず、下記のような表を追加する。(検索条件を指定する為の表)        A        B      C      D       E  11    日付     担当者名   お客    反響    日付 12  >=2007/7/1   シバタ               <=2007/7/31 次に、求める数値を導く数式は、 =DCOUNTA($A$1:$D$9,,$A$11:$E$12) ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 1つ目の引数 $A$1:$D$9 … フィールド名を含むデータベース(データが入った表) 3つ目の引数 $A$11:$E$12 … 検索条件を指定する為の表(元のデータベースと同じフィールド名を使用すること) ※2つ目の引数は今回の場合は省略してもOKだとは思うのですが、もし指定するなら、「2」。 (担当者名フィールドの、データベースにおける列の番号) ※検索条件の表の A12:E12の各セルは、「データ→入力規則→リスト」で選択できるように しておくと便利だと思います。 ※日付に不等合記号(<,>,=)を付けた時ですが、書式は自動的に「2007/7/1」の形になるようです。 ご参考まで。   

dorodoron
質問者

お礼

回答有難うございました。DSUMもDCOUNTAも結構使えそうな関数なので、是非マスターしたいと思います。 こういった表の仕事は多くあると思うので、後で試してみたいと思います。有難うございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

DSUMの回答は人気が無い。SUMPRODUCTなどの回答が多い。 クライテリア 担当者名 シバタ をセルの範囲に作る必要があるが、嫌われていると見る。 DSUM関数は =DSUM(データベース範囲,フィールド,クライテリア範囲) です。その約束に質問は反している。フィールドを定数で指定したり、関数で指定したりしているが、前者は本関数は「リスト」(一般的な意味でなく、エクセルの術語)を扱う関数であることをお忘れなく。また後者はこの関数が第3引数に関数を指定できない仕組みです。 正しくは 例データ 日付 担当者名 お客 反響 5月1日 シバタ 佐藤まりこ 1 6月1日 木村 吉田よしこ 2 7月1日 あひる 佐々木るり 3 7月2日 かば 吉田まさお 4 7月3日 シバタ 佐藤まりこ 5 7月4日 木村 吉田よしこ 6 7月8日 あひる 佐々木るり 7 8月1日 かば 吉田まさお 8 クライテリア 上述(F1:F2) 担当者名 シバタ 式 =DSUM(A1:D9,"反響",F1:F2)  反響に””を囲むこと 結果 6 ーーー (1)SUMPRODUCT (2)配列関数 (3)フィルタ (4)ピボットテーブル (5)SUMIF =SUMIF(B2:B9,"シバタ",D2:D9) などの 解決方がある。

dorodoron
質問者

お礼

ずいぶん長い回答どうもありがとうございました。今回はSUMPRODUCTを使用しましたが、今後の為にもこちらも試してみたいと思います。有難うございました。

関連するQ&A