• ベストアンサー

SUMPRODUCTの使用方法

エクセルのSUMPRODUCT関数の質問です。 以下のような表があった場合、 ユーザー 金額  受注予定日 状況 あ    500   11月1日   A い    600   11月5日   B う    450   11月10日   A え    700   11月13日   C 「状況がAかBで、なおかつ11月1日~5日の金額の合計」 を求めたい場合どのような式にすればよいでしょうか? 非常に困っています。 回答お待ちしています!よろしくお願い致します。

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

  • ベストアンサー
  • ta123
  • ベストアンサー率51% (95/186)
回答No.1

この表がセルA1から展開しているとして =SUMPRODUCT(((D2:D5="A")+(D2:D5="B")),(TEXT(C2:C5,"mmdd")<="1105")*(TEXT(C2:C5,"mmdd")>="1101"),(B2:B5)) 1.(D2:D5="A")+(D2:D5="B")は"A"か"B"であれば1と評価されます。そうでなければ0と評価されます。 2.(TEXT(C2:C5,"mmdd")<="1105")*(TEXT(C2:C5,"mmdd")>="1101")は11/5以前でかつ11/1以降であれば1と評価されます。そうでなければ0と評価されます。   ※受注予定日のセル書式が不明でしたので、とりあえばTEXT関数を使ってみました。 例えば、2行目は1*1*500     4行目は1*0*450 となります。 これで何とかなりませんでしょうか。

rsmyaa
質問者

お礼

丁寧で迅速な回答ありがとうございます☆ …ですが、金額の合計セルには、0とかえされてしまいます><。 因みに日付の欄ですが、「2009/11/12」とセルに記入したものを表示形式で「11月12日」と表示されるように指定しています。 なぜ0になってしまうのかわからないです;;日付の形式がいけないのでしょうか。

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

解答No2です。 追加のご質問ですが11月13日では0となりますがということですが、SUMPRODUCT関数をどのように変更したのでしょう。単にコピペして計算できることではありませんね。最初はSUMPRODUCT関数ということのご質問で「状況」の条件と「日付」の条件を二つ満足するデータを集計するとのことでしたね。 単に11月13日だけの金額の集計を求めるのでしたら、次の式で十分ですね。 =SUMIF(C:C,"2009/11/13",B:B) どうしてもSUMPRODUCT関数にこだわるのでしたら次の式で求めることができますね。 =SUMPRODUCT((C2:C5="2009/11/13"*1)*B2:B5) なお、解答No2での式は次のような式でもよいですね。 =SUMPRODUCT(((D2:D5="A")+(D2:D5="B"))*(C2:C5>="2009/11/1"*1)*(C2:C5<="2009/11/5"*1)*B2:B5)

rsmyaa
質問者

お礼

ご回答ありがとうございます。 下にも書いたのですが、状況欄はA・Bではなく、数字を記入していましたので、解決しました。 11月13日のものも解決いたしました。 もう少し勉強をしていこうと思います。

  • iNL
  • ベストアンサー率51% (18/35)
回答No.3

条件付きの和ですと、SUMIFやDSUMがあると思います 質問者さんの求めるレベルであればDSUMで処理できるかと しかし、複数条件での絞り込み・抽出をいろいろとやるのであれば、スクリプト言語か普通のデータベースを使った方が良いです エクセルで条件式をぐだぐだ書くとあとで修正できないような汚いものになったりしますので・・・

rsmyaa
質問者

補足

ご回答ありがとうございます。 私事なのですが、表の中に、今ある表以上に データを増やしたくない関係もありまして、式は長くなるのですが、DSUM関数を使用する方法を選んでいます。SUMPRODUCT関数を使った式もシート1枚に多くてもて4つほどしか使用しませんので。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

次のような式にすればよいでしょう。 =SUMPRODUCT(((D2:D5="A")+(D2:D5="B"))*(YEAR(C2:C5)=2009)*(MONTH(C2:C5)=11)*(DAY(C2:C5)>=1)*(DAY(C2:C5)<=5)*B2:B5) この式の試験でAやBは半角英数で入力していますが、状況で入力されているAやBは全角でしょうか?両者は統一することが必要です。

rsmyaa
質問者

お礼

ご回答ありがとうございます。 回答いただく前に、「=SUMPRODUCT(((D2:D5=1)+(D2:D5=2)),(C2:C5<=--"2009/11/5")*(C2:C5>=--"2009/11/1"),(B2:B5))」という式で答えがでました。実際の状況欄はアルファベットではなく数字をいれていたのに、”マークでかこっていたことが原因で答えが0になっていたようです。…ですが、更に、11月13日のみの金額を求めたい場合どのような式になるでしょうか;コピペしても0とかえってくるので、こちらで困っています><;  ご回答お待ちしております。よろしくお願い致します;

関連するQ&A