EXCELでのデータ集計の方法と注意点

このQ&Aのポイント
  • EXCEL2007、XPを使用している場合、データ集計を行いたい時に注意が必要です。特に、同じ品番と数量の行が並んでしまう場合があります。
  • 集計を行う際は、SUMIF関数を使用することが一般的ですが、この方法では同じ品番と数量の行が重複して表示されてしまう問題があります。
  • 解決策として、品番ごとに数量を合計するための方法があります。これにより、集計後の表に同じ品番が重複して表示されなくなります。マクロの使用は極力避けたい場合でも、この方法を使うことができます。
回答を見る
  • ベストアンサー

EXCELでのデータ集計について

EXCEL2007、XPを使用しています。 下記の様なデータが並んでいる時に、 項目ごとの集計を行いたいです。 A / B / C / D 倉庫 / メーカー / 品番 / 数量 東京 / テスト / test1 / 5 東京 / テスト / test2 / 3 東京 / テスト / test2 / 4 東京 / テスト / test3 / 1 東京 / テスト / test2 / 2 東京 / テスト / test4 / 4          ↓ 集計後、品番が同じものが並ばないように。 A / B / C メーカー / 品番 / 数量 テスト / test1 / 5 テスト / test2 / 9 テスト / test3 / 1 テスト / test4 / 4 SUMIFで数量を集計したのですが、 同じ品番と数量の行が並んでしまうのが都合悪いです。 良い手はありますでしょうか。 シートが別になっても構いませんが、 マクロの使用は極力避けたいです。 ご教授お願い致します。

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

品番だけの問題ならよいのですが、後からご質問でメーカーが変わったらどうなるとか倉庫が変わったらどうなるとか聞かれることでしょう。それらのことも含めて答えることにすれば次のようになるでしょう。 元のデータがシート1に有るとしてA1セルに倉庫、B1セルにメーカー、C1セルに品番、D1セルに数量とそれぞれ項目名が入力されているとして2行目から下方にデータが有るとします。 そこで作業列を作って対応します。 E2セルには次の式を入力して下方にドラッグコピーします。 =A2&B2&C2 F2セルには次の式を入力して下方にドラッグコピーします。 =IF(E2="","",IF(COUNTIF(E$2:E2,E2)=1,MAX(F$1:F1)+1,INDEX(F$1:F1,MATCH(E2,E$1:E1,0)))) そこでお求めの表をシート2に表示させることにします。 A1セルからD1セルにはシート1の項目を並べます。 A2セルには次の式を入力して右横方向にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$F:$F),"",IF(COLUMN(A1)<=3,INDEX(Sheet1!$A:$C,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1)),IF(COLUMN(A1)=4,SUMIF(Sheet1!$F:$F,ROW(A1),Sheet1!$D:$D),"")))

mitsunori32
質問者

お礼

頂いた関数で、問題なく作成する事が出来ました。 勉強になりました。ありがとうございます。

その他の回答 (1)

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.1

シート2に、別途、「重複の削除」で、品番が重複しない表を作成しておき、 http://pc.nikkeibp.co.jp/article/NPC/20070124/259397/ それに対して(シート2で)、sumif関数使って、シート1からデータ引っ張ればいいのでは? 汎用性等はないので、「そういうデータが作れればいい」という場合にしかできませんが。

mitsunori32
質問者

お礼

ありがとうございます。 ご教授頂いた考え方で無事作成できました。

関連するQ&A

  • エクセルの集計

    エクセルでの集計(集計と呼べるか解りませんが)についてです。 A列に品番 A-1・A-2・A3・・・が入力されています。B列に品番の残数量 300・500・500・・・が入力されています。品番と残数量で1つの表になっています。 上記の表を基に、他のセルに使用数量を入力して行くと、使用した数量内の品番と数量が自動で集計され、使用数量の下や隣に表示される様にしたいのですがどの様な方法があるでしょうか? (例)C1に使用数量:500と入力すると指定したセル(C2~で品番と数量は別のセルに分けます)にA-1:300 / A-2:200 D1に500と入力すると指定したセル(D2~)にA-2:300 / A-3:200 と、表の上(下からの場合もあります)から使った分を引いて行かれ、集計され、表示したいのです。 宜しくお願いします。 補足 使用した数量と使用した内訳は同じシート内で別の表としています。入力した使用数量の中に、どの品番が何キロ使用されていて、その品番が無くなったら次の品番を何キロ使用したかを自動で集計したいのです。

  • Excelでの集計その2

    以前、似た質問をしたものです。下記のケース を、Excel(Excel2000)で作れるでしょうか 次のようなデータが10000件ほどあります。 ------------- (A)--------------------------- 行 商品コード 品名 品番  数量   金額 1 10010005   A商品 A-005  5   1000 2 10010006   B商品 B-006  5   1050 3 10010006  B商品 B-006  6   1100 4 10010007   C商品 C-007  10   100 5 10010008   D商品 D-008   6   60 6 10010009   E商品 E-009   3   300 7 10010010   F商品 F-010  7   700 8 10010010   F商品 F-010   3   300 ------------- (B)--------------------------- 行 商品コード 品名 品番  数量   金額 1 10010005   A商品 A-005  5   1000 2 10010006   B商品 B-006  11   2150 3 10010007   C商品 C-007  10   100 4 10010008   D商品 D-008   6   60 5 10010009   E商品 E-009   3   300 6 10010010   F商品 F-010  10   1000 ------------------------------------------------- (A)のような商品コードが一部同じデータを商品コードをキーにして、数量、金額を集計して(B)のようにしたいのですが、Excelでどのようにしたら出来るでしょうか? よろしくお願いします。

  • エクセルで集計したいのですが・・・

    関数は少しわかりますが、マクロは分かりません。 今回は集計シートの集計数字を元シートに入力して、更に元シートにない項目を元シートの項目行に項目名を入れて集計数字を入れたいのです。 ただ、集計だけであれば「sumif」関数を使えば出来るのですが、元シートにない項目名を探し出して入力する方法がわかりません。教えてください。よろしくお願いします。 元シート  A  B       1 aaa 2 bbb 3 ccc 4 ddd 5 6 7 集計シート 項目 数量 1 bbb 1 2 aaa 2 3 ddd 1 4 eee 1 5 fff 1 6 ccc 2

  • 増減するデータの集計について

    Excel2013使用です。 「受注書」というシートのデータを集計し、「集計表」というシートに 書き出したいです。 【シート「受注書」】    C      D      E       F     G   1 商品名   色     数量    単価   備考 2 データ・・・・・・・・・・・・・・・ 【シート「集計表」】    A      B      C      D     E 6 商品名   色     数量    単価   備考 7 シート「受注書」のC~Fのデータをコピーし、 シート「集計表」のA~Dに貼り付け後、商品名を基準に重複を削除し、 各商品の合計数量をSUMIF関数で集計するようにしました。 テストデータでは上手く行ったのですが、「受注書」のデータは都度 増減があるため、データを増やして再度テストしたところ、増やした分の データが「集計表」の下部に残ってしまいます。 こんな感じ↓ 【シート「集計表」】    A      B      C      D     E 6 商品名   色     数量    単価   備考 7 *****    **     ***     ***    ** 8 ****     **     ***  ***    ** 12****     **     ***     ***    ** ←増やしたデータ コードは以下の通りです Sheets("受注書").Select Range("C2:G2").Select Range(Selection, Selection.End(xlDown)).Select Selection.Copy Sheets("集計表").Select Range("A7").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False ActiveSheet.Range("$A$6:$E$25").RemoveDuplicates Columns:=1, Header:=xlYes Range("C7").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("C7").Select ActiveCell.FormulaR1C1 = "=SUMIF(受注書!C3:C5,集計表!RC1,受注書!C5)" Range("C7").Select Selection.AutoFill Destination:=Range("C7:C9"), Type:=xlFillValues Range("C7:C9").Select Range("A2").Select End Sub 試しに ActiveSheet.Range("$A$6:$E$25").RemoveDuplicates Columns:=1, Header:=xlYes の部分を ActiveSheet.Range("$A:$E").RemoveDuplicates Columns:=1, Header:=xlYes に変えてみたところ、下部の重複データは消えたのですが、集計結果が何故か A7以降にではなくA4以降に表示されてしまい、罫線も消えてしまいました。 更に、C列の数量に不要な0が表示されてしまいます。 こんな感じ↓   A      B      C      D     E 4 商品名   色     数量    単価   備考 5 *****    **     ***     ***    ** 6 ****     **     ***  ***    ** 7                0 8                 0 どこを直したら良いでしょうか?

  • エクセルの集計機能

     エクセルの集計機能を使って、県別に集計をしたいのですが、パソコンによって一部違って表示されます。 ------A -----B--------------------A-----B 1----- 県名  数  としたところ、1-----県名 数  2----- 東京  5  ___________________ 2-----集計   3----- 埼玉  3  ___________________ 3-----東京 5 _________                  4-----埼玉 3 _________                  5-----集計 8 となったり、2行目の集計行が出来なかったりします。 2行目に余分な集計行が出来てしまうのはどうしてなのでしょうか。 マクロを組んだので、どのパソコンでも同じ行番号にデータが入るようにしたいのですが、分かりませんでしょうか。

  • エクセルの集計について

    エクセルの集計について エクセルでセルの結合を使用した場合の集計の仕方を教えてください。 現在、以下の様に入力をしており、A1~A3、A4~A6をセル結合しています。           A          B 1       2010/4/5        5 2                    6 3                    7 4       2010/4/10       5 5                    6 6                    7 7       2010/5/3       5 この場合に2010年4月のB列の集計を行ないたいのですが、本来36となるところが、それぞれ一番上の行の数値のみを集計し10となってしまいます。36にするにはどの様な式を入力すればよいでしょうか。因みに現在使用している式は以下の通りです。 =SUMIF(A1:A7,"<2010/5/1",B1:B7) 以上よろしくお願いいたします。

  • エクセルで2種類に該当する集計をとりたい!

    このサイトでは、いつもお世話になっています。 商品の入庫管理一覧表を作っています。 sheet1に入庫の入力画面として 1 A    B   C    D 2 日付   倉庫  品名   数量 3 1/2  東京  ○○○  300 4 1/15 大阪  **** 400 5 1/30 大阪  △△△  140 6 1/30 福岡  ###  250 7 1/31 東京  ◎◎◎  450          ・          ・          ・ と、入力していくとします(入力件数は1000を超えるかもしれません) そこで別Sheet2に入庫の照合画面として 『倉庫別かつ、品名別』の合計数量を「SUMIF関数」を使って横長の一覧表を作成しようと思っています。(他に方法が思いつかないので・・・) 「SUMIF関数」で『倉庫別かつ、品名別』の数式の作成が今ひとつ分かりません。 Sheet1の入力ものも後で入力があっているかどうか確認したい(フィルタをかけて、日別・倉庫別・品名別など)ので入力画面のSheet1の内容が別シートにコピーされても構いません。(マクロとかなのかな?分からないけれど・・・) 最初はSheet1の上記のように入力されたものはまったく同じように、倉庫別にSheet1の列に並ぶように『=A3,=A4・・・』などとし、そこからsheet2に品名別に「SUMIF関数」を作りました。 しかし、Sheet1が倉庫が10種類近くもある為、確認するときなどカーソルをたくさん移動させなくてはいけなく、見た目にもワークシートがきれいで無いので、もっとすっきりさせたいのです。 説明をどうしていいのか上手く分かりませんが、どうにかスッキリ出来ませんか? お願いします。

  • EXCELの条件付 集計

    お世話になります。 下記のような表で質問します。     A    B    C 1  大分類  中分類  数 量 2   1    1   100 3   1    2   200 4   3    1   150 5   2    1   300 6   1    1   500 大分類が1で、なおかつ中分類が1の数量を集計したい。 答えは 100+500=600 なのですが、 ANDやSUMIFを組み合わせてやっていますが出来ません。 ご教示願います。

  • エクセルでの集計

    A列に下記のようなデータが千件くらい入っています。 例:C-100/50/5/5   A-200/100/50/5   B-100/100/10/10   C-100/50/5/5   A-200/100/50/5   D-300/50/50       ・       ・ かなり重複もあります。 C列にA列のデータを以下の様に集計したいと思います。 例:A-200/100/50/5   B-100/100/10/10   C-100/50/5/5   D-300/50/50      ・      ・ 重複している場合は1行とし抜き出し、順番に集計したいのですが、 マクロか関数でする場合、どのような記述になるのでしょうか? よろしくお願いします。

  • データの集計

    テキストデータで a,10個 b,3個 c,4 a,3個 c,2個 ...のデータがありますが、EXCEL,ACCESSを使用して、Aの合計、Bの合計..の合計を簡単に集計したいのですが、A,B,C..の種類も多くあり大変です。どうすればよいでしょうか?