• 締切済み

エクセル データ集計・分析 重複データのカウント

エクセル初心者です。ご教授願います。 エクセル2010を使っています。 以下のようなデータで月別の注文店舗数と 店舗がどの頻度で注文をしているのかを集計したいのですが、  ex:・毎月 ・○ヶ月おき ・○ヶ月前から注文し始めた・・・etc 注文内容が3種類ありどのように集計してイイのか調べても分からず困っています。 どうか宜しくお教えください。  商品    店舗名   注文月  注文数         黒ペン   △△店   1012     10  赤ペン   △△店   1012     40  白ペン   △△店   1012     10  黒ペン   △△店   1101     20  黒ペン   △△店   1103     30  赤ペン   ××店   1012     50  黒ペン   ○○店   1103     10  白ペン   ○○店   1103     10 その他の情報(エリアや系列など)など含めて列は現在Qまで使っていて、行は5万近くなっています。 クロス集計する為にこのようにデータを蓄積させていましたが母数が1万件近いことが分かりその点も苦慮していますが、今回はこちらの件で質問させて頂きました。 どうか宜しくお願いします。

みんなの回答

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

お示しの表がシート1のA列からD列まであり1行目は項目名で、2行目から下方にデータが入力されているとします。 作業列としてX2セルには次の式を入力して下方にドラッグコピーします。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(X$1:X1)+1,"")) Y2セルには次の式を入力して下方にドラッグコピーします。 =B2&C2 ご質問の内容がかなり難しいので作業シートを使って対応することにします。 例えばシート2のA1セルは店名、B1セルには「注文の頻度(何カ月に1回)」、C1セルには「注文始(何ヵ月前から)」と入力し、E1セルには次の式を入力して右横方向にドラッグコピーします。 =IF(DATE(2000+LEFT(MIN(Sheet1!$C:$C),2),RIGHT(MIN(Sheet1!$C:$C),2)+COLUMN(A1)-1,1)>DATE(2000+LEFT(MAX(Sheet1!$C:$C),2),RIGHT(MAX(Sheet1!$C:$C),2),1),"",TEXT(DATE(2000+LEFT(MIN(Sheet1!$C:$C),2),RIGHT(MIN(Sheet1!$C:$C),2)+COLUMN(A1)-1,1),"yymm")) E1セルから右に横列にはシート1での日付の最小値から最大値までが表示されます。 A2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX(Sheet1!$X:$X),"",INDEX(Sheet1!$B:$B,MATCH(ROW(A1),Sheet1!$X:$X,0))) 作業列であるE列から横の列のデータを表示させるためE2セルには次の式を入力したのちに右横方向にドラックコピーしたのちに下方にもドラッグコピーします。 =IF(OR(E$1="",$A2=""),"",COUNTIF(Sheet1!$Y:$Y,$A2&E$1)) その後にB2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",ROUND(COUNT(E2:XX2)/COUNTIF(E2:XX2,">0"),1)) C2セルには次の式を入力したのちに式を確定する段階でCtrlキーとShiftキーを押しながらEnterキーを押します。 =IF(A2="","",DATEDIF(DATE(2000+LEFT(INDEX(E$1:XX$1,SMALL(IF((E2:XX2)>0,COLUMN(A2:XT2),100),1)),2),RIGHT(INDEX(E$1:XX$1,SMALL(IF((E2:XX2)>0,COLUMN(A2:XT2),100),1)),2),1),TODAY(),"M")) 式の両側には{  }が表示されます。 最後にB列やC列のセルの表示形式は「標準」にします。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 具体的なアドバイスはできませんが・・・ オートフィルタを使ってよいのであれば SUBTOTAL関数と併用してみてはどうでしょうか? 仮にD列に注文数があれば、フィルタをかけても非表示にならない行(たとえば項目行の1行上など)に =SUBTOTAL(9,D:D) という数式を入れておきます。 後は集計条件によってフィルタをかければ、表示されている行の「注文数」の合計が表示されます。 条件に幅がある場合は「数値フィルタ」等で対応できると思います。 この程度ですが、ごめんなさいね。m(_ _)m

関連するQ&A