• ベストアンサー

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

 会社の部材部門に勤務していますが、毎月の生産予定が下記のように組まれているとして      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

  • SUMPRODUCT関数の使い方

    A列 aaa aaa bbb bbb ccc ccc と入力して、 「aaa」の個数と「bbb」の個数の合計を求める式を教えてください。 見た限りの答えは、「aaa」が2個、「bbb」が2個で4なのですが B1に 「=SUMPRODUCT(A:A="aaa",A:A="bbb")」 としたのですが、「0」が返ってきてしまいます。 B2に 「=SUMPRODUCT(COUNTIF(A:A,"aaa"),COUNTIF(A:A,"bbb"))」 だと、 4が返ってきますが A列を aaa aaa bbb にすると「3」が返ってきてほしいのに、2になってしまいます。 個数の合計を返す関数式をご教授ください。

  • ExcelのSUMIF関数についてです。

    ExcelのSUMIF関数についてです。 下記のような表を使用して、 商品コードが一致する商品数の合計をD2セルに入力したい。 (※A2,A3,A4...とA列の中でコードが一致したら、その数量の合計を出す)       A        B       C    D 1     商品コード  商品名   数量   計 2     PD0001    AAA     50 3     PD0019    BBB     20 4     PD0009    CCC     150 5     PD0001    AAA     1 6     PD1004    DDD     15 7     PD1027    EEE     50 8     PD0009    CCC     40 9     PD0019    BBB     30 :      :         :       : :      :         :       : sumif関数を使用して、 D2に =SUMIF(A:A,A2,C:C) を入力コピーすると     D     計 2   35 3    1 4   50 5   45 6    0 7    0 8    0 9    0  :    : :    : となってしまいます。     D     計 2   51 3   50 4   190 5   51 6   15 7   50 8   190 9   50  :    : :    : という出力にするにはどうしたらいいでしょうか? ちなみに、コードではなく商品名で D2に =SUMIF(B:B,B2,C:C) を入力コピーするとうまくいきます。 初歩的なことなのかもしれませんが、 商品コード数も数量もかなり膨大なものを計算するので困っています。 宜しくお願いします。

  • 【EXCEL】sumif関数の連発以外ですっきりした関数

    はじめまして。いろいろ調べましたが、いい方法が見つからなかったので教えてください。EXCEL2002です。 今、以下の表があります。  A     B    C    D    E    F    G    H     I    J 1日付  商品  数量  金額  合計  |日付  商品  数量  金額  合計 2     aaa    3   12,000      |     bbb    4    20,000 3 9/1  bbb    1    5,000  24,000|9/4   ccc   5    17,500  41,500 4     ccc    2    7,000      |     aaa    1    4,000 ----------------------------------------------------------------------- 日付と金額の2~4行目は結合されています。 A~E列のブロックが右に16個あり(今は2個しか書いてませんが)、aaa商品の個数と金額を抽出したいのですが、各ブロックでsumif関数を使い、 16個合計すれば出るのですが、もっとすっきりした関数はありますでしょうか? 実はこの16個のブロックが縦にいくつもあり、関数をかなり入れてるせいかファイルサイズが大きくなってしまってるので。 宜しくお願いします。

  • エクセル 関数

    エクセルの関数について教えて下さい。 例えば、 項目  内容  時間 AAA 123 5.0 BBB 456 2.0 CCC 789 5.0 AAA 123 8.0 CCC 789 1.5 とゆう表があったとして、ここから項目のAAAはTOTAL何時間かかった のかを関数で出したいんですが、どんな関数をつかえばいいですか? 1000行くらいをまとめなくてはいけなくて・・・ それぞれ、どのくらい時間がかかったか知りたいです。 申し訳ないですが、分かる方教えてください。 よろしくおねがいします。

  • エクセルの文字処理

    以前に同じ様な質問があったかも知れませんが、探しきれなかったので教えてください。 A1~A4の4つのセルに以下のスペースが入った文字列が入っていた場合 A1|AAA A2|AAA BBB A3|AAA BBB CCC A4|AAA BBB CCC DDD    A   B   C   D  1|    AAA 2|AAA BBB 3|AAA BBB CCC 4|AAA BBB CCC DDD という具合にしたいのです。 条件は  ・セル内にスペースで区切られない文字列があった場合には、B列に入れる  ・それ以外はスペースで区切って、A列B列C列D列に入れる  ・文字数は3文字固定ではなく全角半角が混在 以上です。すいません宜しく願いします。

  • エクセルVLOOKUP関数の検索値について

      A   B     C     D     E 1 あ AAA 2 い  BBB 3 う  CCC 4 え  DDD 5         お   い  =VLOOKUP(C5,A1:A4,2,0) VLOOKUP関数にて、質問です。 検索値候補1=C5のセル 検索値候補2=D5のセル 範囲=A1:B4 E5=関数 (ここに式を入れたい) 検索値候補1がない時は、候補2を検索する そんな式はどうすればよいですか? 素人ですので、おたすけください

  • 【エクセル】 関数を使って他のエクセルの値を読み込みたい

    エクセルで外部ファイルの値を読み込みたいのですが、その際に読み込み先(シート)を関数を使って切り替えたいので、アドバイスをいただけないでしょうか。 検索で調べてみたらVBAを使う回答が多いのですが、VBAを使える人が周りにいない(私もそうです)ので、後々のメンテナンスを考えると関数を使って切り替えたいのです。 【環境】 WINDOWS XP エクセル2000 C:\AAA (CドライブにAAAというフォルダ) フォルダAAAには、BBBとCCCというエクセルファイルがあります CCCには、シート名1、2、3という3つのシートがあります。 【目標】 ファイルBBBのセルの値を操作すれば、読み込み先が変更されてBBBで表示される値が切り替わる。 【だめだった例】 BBBのセルA1にシート名を入れます。「1~3の数値」 同じくセルB1にパスを表示させます「="'C:\AAA\[CCC.xls]1"&A1&"'"」 ・・・後ろのA1が変化することで読み込み先が変わるはず。 同じくセルC1にCCCから読み込んだ値を表示させます。 「=INDIRECT($B$1&"!"&ADDRESS(ROW(F7),COLUMN(F7)))」  ・・・B1で表示された読み込み先のセルF7の値を表示するはず。 結果は「#REF!」になります。 CCCを同時に起動させると上手く読み込むので、リンクの問題なのでしょうか? なお関数を使わないでパスを記述したセルでは、CCCを起動させなくても上手く読み込んでくれます。 よろしくお願いします。 

  • Excelの関数を使用したデータ抽出

    Excelの関数を使用したデータ抽出 Excelの関数を使用して以下のようなデータ抽出をすることは可能でしょうか? Aに以下の基本データがあります。 --------------- 型番 商品 価格 受注 出荷 仕入 No AAA りんご 100 1/1 1/1 80 001 AAA りんご 120 1/3 1/3 80 002 BBB みかん 200 1/1 1/1 90 003 BBB みかん 210 1/5 1/5 90 004 BBB みかん 220 1/5 1/5 90 005 --------------- Bに型番のみのデータがあります。 --------------- 型番 商品 価格 受注 出荷 仕入 No AAA BBB BBB CCC AAA AAA AAA CCC BBB BBB BBB --------------- Aから抽出したデータをBに反映させたいです。 以下のような形です。 --------------- 型番 商品 価格 受注 出荷 仕入 No AAA りんご 100 1/1 1/1 80 001 BBB みかん 200 1/1 1/1 90 003 BBB みかん 210 1/5 1/5 90 004 CCC ぶどう AAA りんご 120 1/3 1/3 80 002 AAA りんご AAA りんご CCC ぶどう BBB みかん 220 1/5 1/5 90 005 BBB みかん BBB みかん --------------- 宜しくお願い致します。

  • 【VBA】シートの内容を別シートへ転記する方法

    1シート目のA列には品番が沢山並んでおり、B列、C列に内訳、D列に合計が有ります。例)参照 下記の処理をしたいです。 ------------------------------------------------------------------- 2シート目へ1行目の見出しとAAAの品番の行を転記 3シート目へ1行目の見出しとBBBの品番の行を転記 同様に、A列最終行迄繰り返しシートを作成 ------------------------------------------------------------------- A列の品番が変わる行迄を一まとまりとして行選択する方法にて コードをお教え頂きたく、宜しくお願いします。お教え頂いた内容は理解する様努めます。 例) 内訳1 内訳2 合計 AAA ○○○ ○○○ ○○○ AAA ○○○ ○○○ ○○○ BBB ○○○ ○○○ ○○○ BBB ○○○ ○○○ ○○○ CCC ○○○ ○○○ ○○○ CCC ○○○ ○○○ ○○○ DDD ○○○ ○○○ ○○○ DDD ○○○ ○○○ ○○○ DDD ○○○ ○○○ ○○○ 以下略

  • エクセルでできますか?

    エクセルでできますか? ちょっと説明しづらいのですが、 氏名  項目1  項目2  項目3・・・ Aさん  aaa     1     1 Bさん  aaa     0     1 Cさん  bbb     2     0 Dさん  bbb     1     1 このような内容のリストから aaaに該当  項目2  項目3 Aさん       1     1 Bさん       0     1 bbbに該当  項目2  項目3 Cさん       2     0 Dさん       1     1 といったリストに振分けを行いたいのですが、 関数を使用して可能であれば、その数式を 教えていただきたいです。 すみませんが、よろしくお願いします。

専門家に質問してみよう