• 締切済み

顧客ごとの合計が自動的に表示

簡単な計算式があれば教えて下さい。(エクセル2013使用) B列に入力していく購入数を 顧客ごとに合計したものをC列に自動的に表示したいです。 A,B列は受注した順にどんどん増えていきます。 説明が下手で申し訳ないのですが、宜しくお願いします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

こんなのまで質問するのか、というレベルの中身じゃない?と何か裏があるのかと思っちゃったが? しかしよく考えると、 SUMIF関数の第2引数の商品の、重複の無いリストが(関数で)出せないということかな? SUMIF(範囲, 検索条件, 合計範囲) SUM関数は知っているだろうが、条件を付ける関数でSIUMIF,SUMIFS関数がある。 Googleででも「エクセル SIUMIF」で照会し、実例が載っているものを読めば内容は判る。 それさえなじみがないなら、 A列でソート(並べかえ)をして、変化した区切りが目視でわかるから、そこへ=SUM()を入れたら。()内のB列での最初のセルと最終のセルは目視で入れる。 増えると毎回式を入れ直しになるが。 ーー そういうものを軸に持って、このWEB記事は自分の場合に比べて、同じか違う点があるか、そういうことを書いて質問するものだ。 それに商品の一覧をD列  などに出す方法が必要。 http://www.tku.ac.jp/~densan/local/tips-pc/excel-tips/xls_006/xls_006.html D列にこれを作ってしまえば、関数のSUMIFをE列に入れるだけ。 これを関数でやるのは簡単ではない。 Googleで「エクセル関数  重複しないデータ抽出」で照会。 関数だけでやるのは式が複雑。 ーーー 少し詳しく説明すると 例データ A列 B列 A  100 B  300 A  100 A  200 C  100 C  100 ーーー 式を簡単にするため、「作業列(C列とする)を使う方法」を説明する。 (作業列の作成) まずA列について上の行からみて、初めて現れた行で、そのA列の行番号を残すことを考える。。 初出でない行は,後に使うSMALL関数を使うこととの関連で、対象外が確実な、大きな数字をセットする。 データ数の見込みが10万件であれば、100001以上の数をセットしておけば絶対にその顧客初出行の行番号 よりSMALLな数(番号)にならないから。 C列C2に =IF(COUNTIF($A$2:A2,A2)=1,ROW(),10^5+ROW()) と入れて下方向に式を複写すると A列 B列 作業列 A 100 2 B 300 3 A 100 100004 A 200 100005 C 100 6 C 100 100007 式の$A$2:A2の$Aの$に注目のこと。式を複写しても、A2に固定するための$です。 (行的に、データ詰めて、別列D列にA,B,C・・を持ってくる) そのためには、D列の式を入れるセルの行番号ROW()を使って、1,2,3・・を使て、SMALL関数の 第2引数の何番目の指定に使う。 D2に =IF(ROW()-1<=COUNTIF($C$2:$C$10000,"<100000"),SMALL($C$2:$C$100000,ROW()-1),"") もしD列の「その行の行番号」が、「C列(作業列)で100000より小さい件数」より小さい行では SMALL($C$2:$C$100000,ROW()-1)の値をセット、それ以上は空白をセットする。 結果はD列 詰めたデータ 2 3 6 それを顧客名にするには =IF(ROW()-1<=COUNTIF($C$2:$C$10000,"<100000"),INDEX($A$1:$A$100000,SMALL($C$2:$C$100000,ROW()-1)),"") 詰めた A B C ーーー E列E2に =SUMIF($A$2:$A$100000,D2,$B$2:$B$100000) 下方向に式を複写 結果 顧客別売上 400 300 200 0 0 0 0を出さない方法は判りますか。略。 次は「作業列を使わない方法」だが、長くなるので説明略。 上記WEB記事でも参照してください。 ーー エクセルでは一般に下記の方法がある。 今後の質問者の発展のために (1)関数 (2)操作 (3)特別なエクセルが用意している機能(操作で実現するのが多い)   ピボットテーブル   Filter (4)VBA (5)ACCESS的なデータベース的発想による処理 (6)エクセルの(他人が作って、利用できる)アプリを見つける ピボットテーブルなどがおすすめ。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 「ピボットテーブル」や「重複の削除」を使用する方法の場合、結果が自動的には表示されず、ボタンを手動でクリックする必要がありますので注意して下さい。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.5

>顧客ごとに合計したものをC列に自動的に表示したいです。 添付画像では顧客ごとの合計購入数はE列のようです。 E列へ集計した値をC列へも表示したいのですか? >簡単な計算式があれば教えて下さい。(エクセル2013使用) D列はA列からコピーして「データ」タブの「重複の削除」で単一化できます。 E2へ次の数式を設定して下へ必要数コピーすれば良いでしょう。 =IF(D2="","",SUMIF(A:A,D2,B:B)) 顧客数が増えたときはA列をD列へコピーし、重複の削除を再実行してください。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 顧客名も自動表示させる際に >簡単な計算式が という事であれば、作業列を使った方法が最も簡単な数式になるかと思います。  今仮に、質問者様が添付された画像に写っている表が存在するシートがSheet1であるものとし、Sheet2のA列を作業列として使用するものとします。  その場合、まず、Sheet2のA2セルに次の様な関数を入力して下さい。 =IF(AND(INDEX(Sheet1!$A:$A,ROW())<>"",COUNTIF(Sheet1!$A$2:INDEX(Sheet1!$A:$A,ROW()),INDEX(Sheet1!$A:$A,ROW()))=1),ROW(),"")  次に、Sheet2のA2セルをコピーして、Sheet2のA3以下に(Sheet1のA列~B列の表においてデータが入力される可能性のある行を上回るのに十分な行数になるまで)貼り付けて下さい。  次に、Sheet1のD2セルに次の様な関数を入力して下さい。 =IF(ROWS(D2:D$2)>COUNT(Sheet2!$A:$A),"",INDEX($A:$A,SMALL(Sheet2!$A:$A,ROWS(D2:D$2))))  次に、Sheet1のE2セルに次の様な関数を入力して下さい。 =IF($D2="","",SUMIF($A:$A,$D2,$B:$B))  次に、Sheet1のD2~E2のセル範囲をコピーして、Sheet1のD列~E列の3行目以下に貼り付けて下さい。  以上です。

  • intin
  • ベストアンサー率33% (8/24)
回答No.3

sumif関数を使うならば、 No2さんの回答でもいいですし(微妙に計算式が違っている部分がありますが)、 さらに、参考URLのページのように絶対参照をうまくつけると 計算式の入力が簡単になります。 (E2セルに計算式を入れて下に貼り付けるだけで済みます) 今回の場合であれば、 参考URLほど厳密に絶対参照を付けなくても =SUMIF($A$2:$A$7,D2,$B$2:$B$7) というように絶対参照を付ければ十分だと思います。

参考URL:
http://www.excelspeedup.com/sumifpattern/
回答No.2

=SUMIF(A2:B7,D2,B2:B7) =SUMIFS(B2:B7,A2:A7,D2) で行けるとおもいますよ。 普通のSUMにIFの条件をつけるというものです。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは 数式でも出来るので回答が付くと思いますけど、 ピボットテーブルにしておいた方が簡単では?

関連するQ&A

  • エクセル 列の数値の合計の表示について、

    エクセル 列の数値の合計の表示について、 ごく基本的なことだと思いますが、教えてください。 例えばA列に上から順に数値を入れていき、その合計をB列に表示させるとします。 私のやり方はB列の計算式を=B1+A2としてこのコピーを、数値の数だけ下に下げることで目的を達しました。 すでにA列に数値が何個も入力している場合はこれで良いのですが・・。 ここから質問なのですが、例えばA列に現在10個数値がありB列に順番にその合計が出ているとします。 次にA列11行目に新規に数値を入力した時に、自動的にその合計がB列に出るようにしたいのです。 予めB列の数式のコピーを11行目以降に延ばしておくと、10行目の合計の数値が延ばした行まで並ぶので困っています。 よろしくお願いします。

  • エクセルで合計を求めるために

    エクセルで合計の数値を求めたいです 状況としては A列に数字が入力されています B列に入力があったものだけの合計をC1に表示させたいです 例としては A列 B列 100  1 150 200 250  山   この場合の合計をC1に100+250=350 B列の入力内容は状況によって変わります 現在はC1=IF(A1="","",B1)という関数を別の箇所に作って、それの合計を出させていますが、出来れば別の箇所に計算式を作らずにすむ方法を教えてください。お願いします

  • エクセルで各品毎の合計を出すには

    エクセルで納品書を作ったのですが、 何軒もある顧客の納品書の中から、共通した商品の合計価格を 自動で計算させるにはどのようにすればいいでしょうか? 例えば、A B C D という名前の顧客があって、あ い う え お という商品があり、 A~D の (あ)なら(あ) という商品の売り上げ数と売上合計金額を出したい。という感じです。 (あ~お まで、全部出るようにしたいです) 商品の単価は顧客毎に、少し違っていたりします。 vlookup関数を使うのかなぁ、とか思ったりするのですが、納品書は何枚にもなっているし、 データベース?(よく分かってません)みたいなのを使うのかな、とか。 分かりやすく教えてもらえるとありがたいです。 エクセル2010です。 エクセル2003の場合も教えてもらえると、なおありがたいです。 書き足らないところがあれば言って下さい。 よろしくお願いいたします。

  • 売上の多い顧客順に合計金額を抽出する。

    エクセルの下のようなデータから    A     B     C 1  日付  顧客名  売上 2 11/10   A社  10000 3 11/11   B社   5000 4 11/11   C社  10000 5 11/12   A社   5000 6 11/13   B社   2000 別シートに、下記のように顧客売上順に合計を抽出したいのですが     A     B 1 顧客名   売上 2  A社    15000 3  C社    10000 4  B社    7000 どなたか教えていただける方がいましたらよろしくお願いします。 エクセルは2010です。

  • エクセル 3行ずつの合計

    エクセルの質問です。 A列にID、B列に数値が入力されているとします。そしてC列にB列の2行ずつの合計を計算したいのですが、どうしたらいいでしょうか。 A | B  | C 1 | 25 | ID1から3の合計 2 | 24 | ID4から6の合計 3 | 37 | ID7から9の合計 4 | 32 | ID10から12の合計 ・ ・ ・ 数百行はあるのでいちいちちょこちょこと合計するのが苦痛なんです。よろしくお願いします。

  • EXCELの合計

    A列に色々な顧客名がB列に数値が入っています。 現在顧客別にソートを掛けて合計を集計していますが 別シートに自動的に顧客別のシートをつくりそこに自動的に数値合計が 反映できる事は可能でしょうか(同じシート内でも可)。 C列に顧客と数値合計が飛ぶようにしたのですがソートを掛けると 行全体が動くので上手くいきません・・・

  • エクセル2010 同じグループの顧客を表示

    エクセル2010での質問です。 顧客リスト約5000件の中から同じグループに該当する 顧客を表示したいのですがうまくいきません。 Sheet1のA列に顧客番号、B列に名前、C列にグループ番号が あります。 Sheet2のA1にグループ番号を入力すれば B1に名前、C1に顧客番号が表示できる方法を教えてください。 よろしくお願いします。

  • エクセル・単純に合計を出す・・

    表を作っています。 例えばセルを A1~A3,A4~A6,A7~A9 と結合させてそれぞれ数値を入力してます。 B列は結合無しでそれぞれ数値を入力しています。 A+Bの合計をC列に計算させます。 C1に関数を入力して、C2以降はコピーします。 単純に(A1+B1)にすると C1は正しく合計してくれるのですが コピーしたC2は(A2+B1)となってしまい Aが0として計算されてしまいます。 (A$1)と、してしまうと当然ですが C4以降の計算が狂います。 C4は結合されたA4~A6を見てほしいのです。 実際に作っている表は、もっと数が多いので 1つづつ計算では・・・ 何かよい方法はないでしょうか? よろしくお願いします。

  • エクセルで指定した月と指定した顧客の合計を出す方法はありますか?

    エクセルで指定した月と指定した顧客の合計を出す方法はありますか? なかなか答えが見つからず困っています。 1 200904 顧客A \2300 2 200904 顧客A \5000 3 200904 顧客B \5000 4 200904 顧客C \2400 5 200904 顧客C \2600 6 201004 顧客A \2700 200904 顧客A の合計 201004 顧客A の合計  200904 顧客B の合計 200904 顧客C の合計 の様に年月でかつ顧客ごとの合計がでるような 関数があるのでしょうか?

  • 入力した合計数値を振り分けたい

    関数とかマクロなど理解していない初心者でエクセル2003を使用しいます。 例えば 1Aのセルに1~10個(単価50円)と入力済 2Aのセルに11~20個(単価40円)と入力済 3Aのセルに21~30個(単価30円)と入力済 1B~3Bのセルに個数欄未入力 1C~3Cのセルに金額自動計算式入力済 4Bのセルに合計個数欄未入力 4Cのセルに合計金額自動計算式入力済 とした場合、例えば4Bの合計個数に29個と入力すると、自動的に1Bに10個、2Bに10個、3Bに9個と個数が振り分けられる様にしたいのですが、できるのでしょうか?

専門家に質問してみよう