- ベストアンサー
EXCELでのデータ集計の方法と注意点
- EXCEL2007、XPを使用している場合、データ集計を行いたい時に注意が必要です。特に、同じ品番と数量の行が並んでしまう場合があります。
- 集計を行う際は、SUMIF関数を使用することが一般的ですが、この方法では同じ品番と数量の行が重複して表示されてしまう問題があります。
- 解決策として、品番ごとに数量を合計するための方法があります。これにより、集計後の表に同じ品番が重複して表示されなくなります。マクロの使用は極力避けたい場合でも、この方法を使うことができます。
- みんなの回答 (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),"")))
その他の回答 (1)
- STICKY2006
- ベストアンサー率29% (1536/5269)
シート2に、別途、「重複の削除」で、品番が重複しない表を作成しておき、 http://pc.nikkeibp.co.jp/article/NPC/20070124/259397/ それに対して(シート2で)、sumif関数使って、シート1からデータ引っ張ればいいのでは? 汎用性等はないので、「そういうデータが作れればいい」という場合にしかできませんが。
お礼
ありがとうございます。 ご教授頂いた考え方で無事作成できました。
お礼
頂いた関数で、問題なく作成する事が出来ました。 勉強になりました。ありがとうございます。