Excelでトップテンを出す方法(対象行は28757行) ・1枚のExcelに上から順に各店舗が順不同で売上金額を毎日入力しているだけのエクセルシート。
Excelでトップテンを出す方法(対象行は28757行) ・1枚のExcelに上から順に各店舗が順不同で売上金額を毎日入力しているだけのエクセルシート。 各店舗の合計金額を出した後、全ての店舗の合計金額でのベスト10を抽出したいです。 ※シートの状態はオートフィルタにて対象分のみ表示(対象外は非表示) その状態でバラバラに入力をされた各店舗の合計を出した後に、トップテンを出す方法。 どなたか助けてください。 よろしくお願いいたします。
Excel・48閲覧・500
ベストアンサー
元の表がシート1に有ってA2セルから下方に日付、B2セルから下方に店舗名、C2セルから下方に売上金額が有る表とします。 A1セルからC1セルには列見出しの項目名が有り、オートフィルターなどが出来るようになっているとします。 そこで作業列を作って対応します。 F2セルには次の式を入力して下方にドラッグコピーします。 =IF(SUBTOTAL(2,A2)=1,SUBTOTAL(2,A$1:A2),"") その後に抽出によってえらばれた表をシート2に表示するとしてシート2のA2セルには次の式を入力してC2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。 =IFERROR(INDEX(Sheet1!$A:$C,MATCH(ROW(A1),Sheet1!$F:$F,0),COLUMN(A1)),"") その後にシート2にも作業列を作って対応します。 J2セルには次の式を入力します。 =IF(B2="","",IF(COUNTIF(B$2:B2,B2)=1,MAX(J$1:J1)+1,"")) K2セルには次の式を入力してL2セルまで横にドラッグコピーします。 =IF($J2="","",SUMIF($B:$B,$B2,$C:$C)+IF(COLUMN(A1)=1,0,0.1/ROW(A1))) M2セルには次の式を入力します。 =IF(K2="","",IF(RANK(K2,K:K,0)<=10,RANK(K2,K:K,0),"")) その後にK2セルからM2セルまでを選択してから含まれるそれらの式を下方にドラッグコピーします。 お求めの表でE2セルには次の式を入力してG2セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IFERROR(IF(COLUMN(A1)=1,INDEX($M:$M,MATCH(LARGE($L:$L,ROW(A1)),$L:$L,0)),IF(COLUMN(A1)=2,IF($E2="","",INDEX($B:$B,MATCH(LARGE($L:$L,ROW(A1)),$L:$L,0))),IF(COLUMN(A1)=3,IF($E2="","",INDEX($K:$K,MATCH(LARGE($L:$L,ROW(A1)),$L:$L,0))),""))),"") E列にはランクがF列には店舗名が、G列には売上金額が表示されます。 同じ売上金額に店舗がたくさんある場合には10行以上の下まで表になります。
質問者からのお礼コメント
ご丁寧にありがとうございます。 助かりました!!!
お礼日時:7/2 17:06