- ベストアンサー
Excel関数でAとBとCを満たし、Eの条件を受注日、発注NO、商品名、数、出荷日から求める方法
- 上の表から受注日Aがあり、発注NOBがあり、商品名Cがビール、出荷日Eが2月以降の物の数Dの合計を求める方法をExcel関数で解説します。
- 受注日Aが存在し、発注NOBが存在し、商品名Cがビール、出荷日Eが2月以降であるデータを抽出し、その数Dの合計を求めるためには、SUMIFS関数を使用します。
- SUMIFS関数の使い方は、SUMIFS(D1:D5, A1:A5, "<>", B1:B5, "<>", C1:C5, "ビール", E1:E5, ">=2/1")です。これにより、条件に合致するデータの数Dの合計が求められます。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! >出荷日Eが今月以降(2月以降)の物・・・ 一般的に、○以降といえば○も含まれるのが普通ですので、 正確には「来月以降」だと思います。 細かいコトはさておいて、 質問文をそのままSUMPRODUCT関数に当てはめてみてはどうでしょうか? 表示したいセルに =SUMPRODUCT((A1:A5<>"")*(B1:B5<>"")*(C1:C5="ビール")*(MONTH(E1:E5)>=2),D1:D5) としてみてください。m(_ _)m
その他の回答 (4)
- tom04
- ベストアンサー率49% (2537/5117)
No.1です! たびたびごめんなさい。 前回の数式では11月までしか対応できませんので、 ↓の数式に変更してください。 =SUMPRODUCT((A1:A5<>"")*(B1:B5<>"")*(C1:C5="ビール")*(E1:E5>EOMONTH(TODAY(),0)),D1:D5) ※ EOMONTH関数を使用するにあたり、Excel2003以前のバージョンですと メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 Excel2007以降のバージョンだとそのままでOKです。m(_ _)m
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No3です。 =IF(AND(A2<>"",B2<>"",C2="ビール",MONTH(E2)>MONTH(TODAY())),MAX(F$1:F1)+D2,"") の式ですが次のように訂正してください。 =IF(AND(A2<>"",B2<>"",C2="ビール",E2>=DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)),MAX(F$1:F1)+D2,"")
- KURUMITO
- ベストアンサー率42% (1835/4283)
5行目のデータだけが満足した条件ということで5となっています。 SUMPRODUCT関数やSUMIFS関数では合計は求められますが、どの行が該当の行であるかが分かりません。お示しの条件を満足した行が分かるようにしてしかも合計を表示させるとしたら次のようにすればよいでしょう。 F2セルに次の式を入力して下方にドラッグコピーします。 =IF(AND(A2<>"",B2<>"",C2="ビール",MONTH(E2)>MONTH(TODAY())),MAX(F$1:F1)+D2,"") これでどの行が該当する行であるのかが分かりますし集計の額も該当する行の最終行に表示されます。 ところで今回はビールについてでしたがワインや酒についても同時に求めたい場合にはF2セルから右横方向の列にビール、ワイン、酒などと入力します。 F2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(OR($C2="",F$1=""),"",IF(AND($A2<>"",$B2<>"",$C2=F$1,MONTH($E2)>MONTH(TODAY())),MAX(F$1:F1)+$D2,"")) なお、集計の数を1行にまとめて表示させるために例えば表が99行目で利用されるとしたら100行目にF100セルから右横方向に商品名をF101セルから右横方向に合計数を表示させます。 F100セルには次の式を入力して右横方向にドラッグコピーします。 =F$1 F101セルには次の式を入力して右横方向にドラッグコピーします。 =MAX(F2:F99)
お礼
早々のご回答ありがとうございました。 お礼が遅れて申し訳ありません。 今後ともよろしくお願いいたします
- keithin
- ベストアンサー率66% (5278/7941)
ヤリタイ事: >数Dの合計を求めたい。 エクセル2007以降を使っているなら =SUMIFS(D:D,A:A,"<>",B:B,"<>",C:C,"ビール",E:E,">="&DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)) のように。 エクセル2003以前を使っているなら =SUMPRODUCT((A1:A5<>"")*(B1:B5<>"")*(C1:C5="ビール")*(E1:E5>=DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)), D1:D5) といった具合に。*と,が混在しているので、間違えないように。 ご利用のエクセルのバージョンによって、出来る方法が変わります。(まぁ2003の方法は2007以降でももちろん使えますが) ご相談投稿では、必ず普段あなたが使ってるソフトのバージョンまでキチンと明記する事を憶えて下さい。 #A5,B5,C5、E5で”5” についてはイミフメイのためスルー。
お礼
早々にご回答をいただいておきながらお礼が遅くなり誠に申し訳ありません。 今後ともよろしくお願いいたします。
お礼
まずは早々のご回答に対しお礼が遅れて誠に申し訳ありません。NO.5の補足回答もありがとうございます。 さっそく利用させていただきました。 今後ともよろしくお願いいたします。