• ベストアンサー

エクセル、こんな場合はどのような関数式を立てればよいでしょうか?

 会社の部材部門に勤務していますが、毎月の生産予定が下記のように組まれているとして      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からのトータル累計が出て、思うようにいきませんでした。どなたか教えていただけないでしょうか?

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

  • ベストアンサー
noname#204879
noname#204879
回答No.5

D2: =IF(C2=C1,D1+B2,B2)

superfighter823
質問者

お礼

 回答有難うございました。説明いただいた式で思うような答えを出せました。  もっと複雑な関数式が必要かと思いましたが、これで可能になるのですね。少し柔らかい思考が出来るようにしたいです。 有難うございました。

その他の回答 (6)

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

     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) ★下にコピー

superfighter823
質問者

お礼

 ご回答有難うございました。 NO5の方と同様の式になるのですね。その通りの結果が得られました。 本当にすみませんでした。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.6

#01です 「品番が切り替わる毎の累計」でしたね。すみません解釈を誤っておりました

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.4

#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列の品番だけで累計を取っているように見えますね。

superfighter823
質問者

お礼

再三のご回答、本当に有難うございます。何度もzap35さんの関数式を試行しましたが、私の説明不足で結果が得られませんでした。  #5の方の回答により、求める結果は得られたのですが、その他の補則回答をしていただき、私には勉強になりました。  どうしても使い慣れた自分のパターンに入りがちで、不慣れ、苦手な関数は使いませんでした。もっと努力の必要を痛感いたしました。 何度もお答えいただき、感謝申し上げます。  本当に有難うございました。  

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

#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

superfighter823
質問者

補足

 度々、回答有難うございます。質問の商品は製品○と置換していますが、実際はアルファベットと数字が混在しており、数字を認識しているのかもしれません。  私の説明が悪く、実際は TU-45GESのような商品名なんです。リトライしましたが、同じ結果でした。そのサムプロダクト関数を使う式を私は申し訳ないのですが、理解できませんでした。(あまり使えない)  SUMIFやSUMでは表記できないのでしょうか?スキル不足ですみません。

noname#46899
noname#46899
回答No.2

E3のセルに、 =if(D2=D3,E2+C3,C3) で、あとはこれをE4以下にコピーすればよいのでは? 累計なんですからSUMを使う必要はないのではないでしょうか。

superfighter823
質問者

補足

 回答有難うございます。説明いただいた式をE列に入れたいのですが、データーの構成上、D列に表示させたいのです。E列は使わずにD列に表示する方法はありませんか?

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

D2セルに =SUMPRODUCT((A$2:A2=A2)*(C$2:C2=C2)*(B$2:B2)) を貼り付けて下方向にコピーしてみてください

superfighter823
質問者

お礼

 早速の回答有難うございます。 =SUMPRODUCT((A$2:A2=A2)*(C$2:C2=C2)*(B$2:B2))の式をD2セルに入れ、下へコピーしましたが、B列の台数表示がそのまま出ました。 何故なんでしょうか?

関連するQ&A