- ベストアンサー
エクセル、こんな場合はどのような関数式を立てればよいでしょうか?
会社の部材部門に勤務していますが、毎月の生産予定が下記のように組まれているとして A B C D E 1 商品 台数 品番 2製品1 80 AAA 3製品2 100 BBB 4製品3 50 AAA 5製品2 200 AAA 6製品4 150 CCC 7製品1 40 AAA 8製品5 60 AAA 9製品2 180 BBB ↓ ↓ のような配列で作られていて、仕事の都合上から以下のように品番が切り替わるごとにC列品番をキーワードにD列に累計合計を表示させたいのです。同じ品番が連続したり、1行のみや、細かく切り替わったり、不規則です。 A B C D E 1 商品 台数 品番 累計 2製品1 80 AAA 80 3製品2 100 BBB 100 4製品3 50 AAA 50 5製品2 200 AAA 250 6製品4 150 CCC 150 7製品1 40 AAA 40 8製品5 60 AAA 100 9製品2 180 BBB 180 10製品6 400 BBB 580 11製品2 350 BBB 930 SUMIF関数,SUM関数をIF関数にネストして式を作るような気がしているのですが、単純に条件に合うものの合計ならSUMIF関数または集計機能で求められますが、品番が替わる地点で、条件に合う品番のそこからの累計を求め、表示させる式が導けません。=IF(AND(C2<>C3)(B2>0),SUMIF($C$2:C2,C2,$B$B2:B2))のような式を組みましたが、B2からのトータル累計が出て、思うようにいきませんでした。どなたか教えていただけないでしょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
D2: =IF(C2=C1,D1+B2,B2)
その他の回答 (6)
- maron--5
- ベストアンサー率36% (321/877)
A B C D 1 商品 台数 品番 累計 2 製品1 80 AAA 80 3 製品2 100 BBB 100 4 製品3 50 AAA 50 5 製品2 200 AAA 250 6 製品4 150 CCC 150 7 製品1 40 AAA 40 8 製品5 60 AAA 100 9 製品2 180 BBB 180 10 製品6 400 BBB 580 11 製品2 350 BBB 930 D2=IF(C1=C2,D1+B2,B2) ★下にコピー
お礼
ご回答有難うございました。 NO5の方と同様の式になるのですね。その通りの結果が得られました。 本当にすみませんでした。
- zap35
- ベストアンサー率44% (1383/3079)
#01です 「品番が切り替わる毎の累計」でしたね。すみません解釈を誤っておりました
- zap35
- ベストアンサー率44% (1383/3079)
#01です。再掲お許し下さい もしかして累計を出すための条件はC列の品番だけですか? #01は「A列とC列が一致するもの」の累計を求める式です。 C列だけで累計を出せば良いのであれば以下の式でいけます =SUMIF(C$2:C2,C2,B$2:B2) ただし半角全角が混在している場合は正しい結果は出ません。その可能性があるなら =SUMPRODUCT((ASC(C$2:C9)=ASC(C9))*(B$2:B9)) でお試しください。 でも質問後半の凡例をみると変ですね。AAAは2行目、4行目にありますが累計は130にならないのですか? それでA列、C列が合致したら累計するものと勘違いしました。確かに9~11行目はC列の品番だけで累計を取っているように見えますね。
お礼
再三のご回答、本当に有難うございます。何度もzap35さんの関数式を試行しましたが、私の説明不足で結果が得られませんでした。 #5の方の回答により、求める結果は得られたのですが、その他の補則回答をしていただき、私には勉強になりました。 どうしても使い慣れた自分のパターンに入りがちで、不慣れ、苦手な関数は使いませんでした。もっと努力の必要を痛感いたしました。 何度もお答えいただき、感謝申し上げます。 本当に有難うございました。
- zap35
- ベストアンサー率44% (1383/3079)
#01です。私が実際にテストした結果は以下の通りになりました。 A列の商品名の先頭の数字がそのままついているようなことはありませんか? 商品 台数 品番 累計 製品1 80 AAA 80 製品2 100 BBB 100 製品3 50 AAA 50 製品2 200 AAA 200 製品4 150 CCC 150 製品1 40 AAA 120 製品3 60 AAA 110 製品2 180 BBB 280
補足
度々、回答有難うございます。質問の商品は製品○と置換していますが、実際はアルファベットと数字が混在しており、数字を認識しているのかもしれません。 私の説明が悪く、実際は TU-45GESのような商品名なんです。リトライしましたが、同じ結果でした。そのサムプロダクト関数を使う式を私は申し訳ないのですが、理解できませんでした。(あまり使えない) SUMIFやSUMでは表記できないのでしょうか?スキル不足ですみません。
E3のセルに、 =if(D2=D3,E2+C3,C3) で、あとはこれをE4以下にコピーすればよいのでは? 累計なんですからSUMを使う必要はないのではないでしょうか。
補足
回答有難うございます。説明いただいた式をE列に入れたいのですが、データーの構成上、D列に表示させたいのです。E列は使わずにD列に表示する方法はありませんか?
- zap35
- ベストアンサー率44% (1383/3079)
D2セルに =SUMPRODUCT((A$2:A2=A2)*(C$2:C2=C2)*(B$2:B2)) を貼り付けて下方向にコピーしてみてください
お礼
早速の回答有難うございます。 =SUMPRODUCT((A$2:A2=A2)*(C$2:C2=C2)*(B$2:B2))の式をD2セルに入れ、下へコピーしましたが、B列の台数表示がそのまま出ました。 何故なんでしょうか?
お礼
回答有難うございました。説明いただいた式で思うような答えを出せました。 もっと複雑な関数式が必要かと思いましたが、これで可能になるのですね。少し柔らかい思考が出来るようにしたいです。 有難うございました。