• 締切済み

ランキング表の作成方法

ランキング表を作成しています。 Aの行には名前 Bの行には杯数 Cの行には単価 Dの行には杯数×単価=合計金額 これを店舗別に5つのシートに分けて作成しています。 ※例ですが、画像を添付しました。 最終的に別のシートに全店舗でのランキングを作成したいと思っています。 マクロなどで組む方法があれば教えて頂きたいです。 宜しくお願い致します。

みんなの回答

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

No.3です! 投稿後に思ったのですが・・・ 欲を言えばSheet6に列を増やして店舗名を入れた方が良いような気がします。 Sheet6を↓の画像のような配置にやり替えてみました。 当然コードも変わってきます。 前回のコードはすべて消して、↓のコードにしてみてください。 (B列はSheet1~Sheet5のSheet名を表示しています) Sub Sample2() 'この行から Dim i As Long, k As Long, startRow As Long, endRow As Long, wS6 As Worksheet Set wS6 = Worksheets("Sheet6") '←Sheet6は実際のSheet名に! endRow = wS6.Cells(Rows.Count, "A").End(xlUp).Row If endRow > 1 Then Range(wS6.Cells(2, "A"), wS6.Cells(endRow, "D")).ClearContents End If For k = 1 To 5 With Worksheets(k) .Range("A:A").AdvancedFilter Action:=xlFilterInPlace, unique:=True If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then Range(.Cells(2, "A"), .Cells(endRow, "A")).Copy wS6.Cells(Rows.Count, "A").End(xlUp).Offset(1) End If .ShowAllData startRow = wS6.Cells(Rows.Count, "B").End(xlUp).Row + 1 endRow = wS6.Cells(Rows.Count, "A").End(xlUp).Row Range(wS6.Cells(startRow, "B"), wS6.Cells(endRow, "B")) = .Name For i = startRow To endRow wS6.Cells(i, "C") = WorksheetFunction.SumIf(.Range("A:A"), wS6.Cells(i, "A"), .Range("D:D")) Next i End With Next k wS6.Range("A1").CurrentRegion.Sort key1:=wS6.Range("C1"), order1:=xlDescending, Header:=xlYes endRow = wS6.Cells(Rows.Count, "A").End(xlUp).Row With Range(wS6.Cells(2, "D"), wS6.Cells(endRow, "D")) .Formula = "=RANK(C2,C:C)" .Value = .Value End With End Sub 'この行まで ※ 個人的にはこの方が良いと思います。m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! VBAでの一例です。 ↓の画像のように左側がSheet1~Sheet5の配置で、右側がSheet6の配置とします。 すべてのSheetの1行目項目は入力済みだとします。 >最終的に別のシートに全店舗でのランキングを作成したいと思っています というコトですので、各Sheetの合計金額でのランキングとしています。 尚、各Sheetに同姓同名はないという前提です。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペースト → Excel画面に戻ってマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, k As Long, startRow As Long, endRow As Long, wS6 As Worksheet Set wS6 = Worksheets("Sheet6") '←Sheet6は実際のSheet名に! endRow = wS6.Cells(Rows.Count, "A").End(xlUp).Row If endRow > 1 Then Range(wS6.Cells(2, "A"), wS6.Cells(endRow, "D")).ClearContents End If For k = 1 To 5 With Worksheets(k) .Range("A:A").AdvancedFilter Action:=xlFilterInPlace, unique:=True If .Cells(Rows.Count, "A").End(xlUp).Row > 1 Then Range(.Cells(2, "A"), .Cells(endRow, "A")).Copy wS6.Cells(Rows.Count, "A").End(xlUp).Offset(1) End If .ShowAllData startRow = wS6.Cells(Rows.Count, "B").End(xlUp).Row + 1 endRow = wS6.Cells(Rows.Count, "A").End(xlUp).Row For i = startRow To endRow wS6.Cells(i, "B") = WorksheetFunction.SumIf(.Range("A:A"), wS6.Cells(i, "A"), .Range("D:D")) Next i End With Next k wS6.Range("A1").CurrentRegion.Sort key1:=wS6.Range("B1"), order1:=xlDescending, Header:=xlYes endRow = wS6.Cells(Rows.Count, "A").End(xlUp).Row With Range(wS6.Cells(2, "C"), wS6.Cells(endRow, "C")) .Formula = "=RANK(B2,B:B)" .Value = .Value End With End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

全文を見る
すると、全ての回答が全文表示されます。
  • chayamati
  • ベストアンサー率41% (257/615)
回答No.2

新しいシートに A1:名前、B1:合計金額、C1:ランク A2以下に名前を記入し B2=SUMIF(Sheet1!$A$2:$D$10,A2,Sheet1!$D$2:$D$9) C2=RANK.EQ(B2,$B$2:$B$4,0) として縦にコピペします。 ここで、sheet2にも同一人がいるときは B2=SUMIF(Sheet1!$A$2:$D$10,A2,Sheet1!$D$2:$D$9) +SUMIF(Sheet2!$A$2:$D$10,A2,Sheet2!$D$2:$D$9)

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>最終的に別のシートに全店舗でのランキングを作成したい 具体的に何を集計したいのかご相談で書かれていませんが,ふつーに考えると 1)「りさ」や「あゆ」が売り上げた合計金額の総合計を集計したい 2)「りさ」や「あゆ」が売り上げた杯数の総合計を集計したい といったところでしょうか。 手順: 新しい集計用のシートを1枚用意する データタブの「統合」を開始する 各シートのA:D列を選んで追加していく 「左端列」「上端行」にチェックし,合計を選んで集計する 以上で ・店舗名一覧の自動書き出し ・各店舗毎の「杯数」「単価」「合計金額」の集計 が自動で得られます。 単価の合計列は不要なので削除します。 もし必要なら,更に手で「金額÷杯数」の計算式を書き出して,平均単価を求めて下さい。 更に「ランキング」が必要なら,統合結果をふつーに降順で並べ替えたり,必要に応じてRANK関数の列を追加して順位を計算して下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで現在ランキング表を作成しています。

    エクセルで現在ランキング表を作成しています。 A1~C3に数値が、D1~F3に文字列が入っています。 A1の数値とD1の文字列、A2の数値とD2の文字列を関連付けるようにし、 別シートに数値の大きい順に列で並べ替え、ランキング順を付けて下図のように したいのですが、文字列を関連付けて並び替えることができません。どうしたらよいでしょうか? シート2のA列がランキング順位、B列が数値の大きい順、C列にBの数値と関連付けた文字列 シート1              シート2 ____A____B____C____D____E____F     A__B___C 1__12__18__00__AA__AB__AC    1__1__25__BC 2__10__08__25__BA__BB__BC    2__2__19__CC 3__05__09__19__CA__AB__CC    3__3__18__AB

  • 分かりにくい質問でごめんなさい

    Excelで表が作成してあります。 シート1に 店舗名 日付 科目(1) 金額(1) 科目(2) 金額(2)・・ 1013 10/20  8121  3000   4030  500  ・  ・   ・    ・    ・   ・ になっており、シート2には、 店舗コード 店舗名 科目  1013    □店  ? ?の部分に店舗コードと科目が一致した金額の合計値を もとめたいのですがどうしたらよいのかわかりません。 ちなみに、列がV、行が2000以上あります。 一発でシート2に求めなくても、何回かにわけて、最終的にシート2に合計値が入ればよいです。

  • Excel表計算作成中、

    現在 請求書や納品書などを作成中です。  一行に、「単価、数量、合計」とよくある請求書などを作成しています。合計金額を単価X数量で計算式を入力したんですが、それですと明細欄が何も書いてない行にも合計欄に数字の「0」が入ってしまいます。     明細    数量  単価  金額  AAA    1    100   100                   0                   0  という感じになってしまっているんです。この明細が書かれてない、もしくは数量、単価が入ってない場合に金額欄を表示させない場合の方法を教えてください。お願いします。

  • 成績管理表の作成方法

    先日から質問させて頂いています。 作成の方向性が決まりましたので、関数のご教授願います。 職場で成績管理表を作成しています。 エクセル2003です。 下記表に数式を入れたいのですが・・・ チャレンジしましたが、うまくいきません。 年間成績表 *年を表示したら、1年分の日付を自動にしたい。(カレンダー) *このシートに1年分の成績データを入力する事で、  以下の表を自動計算させたい。 *(1)(2)(3)の様に項目別で例1例2の様にグループ別の表です。 2010年 例1 aさん bさん 例2 aさん bさん 4月1日(1)    (2)    (3) 4月1日(1)    (2)    (3) 4月1日(1)    (2)    (3) 省略 3月31日(1)     (2)     (3) 週間シート(日~土の今週を表示) 例2 3月14日   3月15日  省略 3月20日  週間合計    (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん 例2 3月14日   3月15日  省略 3月20日  週間合計    (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん 月間シート 例1 3月18日(今日の日) 月間合計  年間合計    (1) (2) (3)     (1) (2) (3) (1) (2) (3) aさん bさん 例2 3月18日       月間合計 年間合計    (1) (2) (3)     (1) (2) (3) (1) (2) (3) aさん bさん 月間シート 例1 4月    5月 省略 3月    年間合計 (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん 例1 4月    5月 省略 3月    年間合計 (1) (2) (3) (1) (2) (3)   (1) (2) (3) (1) (2) (3) aさん bさん

  • エクセル2003 星取表作成

    エクセル2003 星取表作成 エクセルで表を作成していて、この空欄を埋めたらこの想定値が返るというようにしたいです。 想定値の算出は添付のようなイメージです。 この表は横に30列、縦にも40行ほどあります。 このような想定値を簡単に出す方法はありますか? 想定値=表の中の金額の合計÷空白セルの数

  • 集計表の作成

    集計表の作成 AccessとExcelを使用して集計Aを作成したいと思っています。 (ボタン1クリックだけで行なうのが理想です) 1.グループ毎に小計行を追加したい(小計行はグループ毎の合計 2.エクスポートしたExcelの最終に合計行の追加したい (合計行は全グループの合計) A列はデータ数によって毎回行数が変わる為にあらかじめレイアウトを 作成して、Vlookuopで当てはめるという事も出来ません。 元となる金額のデータはAccessで作成してExcelにエクスポートする 所までは出来たのですがそれ以降(小計行の追加・計算、合計行の追加・計算)が分かりません。どの様にすればよいでしょうか? Access:仕入先テーブル コード |テキスト型 名称 |テキスト型 仕入額 |数値型 前年比 |数値型 グループ |数値型 Excel:集計A A | B | C | D | E | F | 1 |コード | 名称 |仕入額 |前年比|グループ| 2 |1030 | A | 1,000 | 49%|1 | 3 |1040 | B | 1,050 | 32%|1 | 4 | |小計(A+B) | 2,050 | 81%| 5 |1050 | C | 1,000 | 50%|2 | 6 |1060 | D | 1,050 | 52%|2 | 7 |1070 | E | 1,050 | 49%|2 | 8 | |小計(C+D+E)| 3,100|50.3%| 9 |1080 | F | 1,000 | 60%| | 10|1090 | G | 2,000 | 38%| | 11|2000 | H | 1,000 | 60%| | ・ ・ ・ ・ | |合計 | 9,150 |49% | ・・・C4+C8+C9+合計行の直前まで

  • ☆エクセルの使い方☆  ブックごとの串刺し演算?でしょうか?やり方教えてください。

    エクセルの使い方について質問があります。よろしくお願いします。 1例を揚げますので、この方法で教えてください。 1つの会社で10店舗あります。 1店舗につき、1つのブックを作ります。 1シートが1か月分の売上表。 品番を列、日付を行で作ります。合計12シートになります、1月から12月まで。 11番目のブックに10店舗合計が出るようにしたいのです。 このような表を何回も作るとき時間かかります。 こういった作業の最速の作成方法と作成順序アドバイスいただける方! よろしくお願いします。 私、初心者ですので、わかるようにお願いします。 特殊な操作はできません。マクロとかもわかりません。 よろしくお願いします。

  • エクセルで作る見積表の抽出印刷方法??

    エクセルで見積表を作りたいと考えています。商品名、単価をあらかじめ入力しておいて、後で数量さえ入力すれば合計金額が出るという、よくあるタイプのものです。 しかし、ここまでなら私にも作成出来るのですが、問題はこの後です。数量を入力した商品、単価、数量、金額、最終的な合計金額のみを印刷できるようにしたいのです。つまり、その都度、数量を入力していない商品(行)を省いて印刷したいのです。そうしないと商品の量が多い為に、大変な枚数になってしまい、分かり難い見積表となってしまいます。 また、もう1つお願いがあるのですが、実際、見積表の数量を入力する営業さん達は、エクセルについては超初心者ばかりです。抽出して印刷する方法は、出来るだけ分かりやすいものだと助かります。しかし無理であれば、どんな方法でも構いません。教えてください!!宜しくお願いします。補足が必要であれば致します。

  • エクセルの表作成と集計についておしえてください

    宜しくお願いします。 個人のペットショップで動物たちを管理する表を引き継ぎました。 その表はエクセルで作ってあります。 ・シート1に全ての動物情報が入力してある表があります。 上から、犬の各犬種別に分けてある表が 1つ目の犬種の表があり その犬種の合計 1行空けてあって 2つ目の犬種の表があり その犬種の合計 1行空けてあって と言う感じでずらーっと1枚のシートに入力してあります。 ・その表に新しく入荷した動物を行を追加しながら入力し 売れた動物を削除してと言う感じで1週おきに作り直しています。 シート2~シート12 ・シート1に入力してある犬種別に各シートが作成してあり 内容はシート1に入力してある犬種別にコピーしてここに張り付けています。 上記のシート1の全犬種のデータと 各犬種の頭数が合計してあるシート全体を印刷したものと シート2~シート12の各犬種別に分けてあるシートを印刷して 2週に1回オーナーにFaxするシステムになっています。 ここからが質問なのですが シート1に各犬種ごとに追加したり削除したりするのを 今は行の追加や削除をして作っているのですが もっと楽にできる方法や、関数、その他のやり方などありますか? アクセスは入ってなくエクセルしか使えないのでエクセルを使用した方法でお願いします。 あとシート1からシート2~シート12の各シートへコピーして貼り付けしているのですが もっと簡単にシート1から各シートに取り出していく方法はありませんか? 今週の火曜日にまたオーナーへの提出日が来ますのでもっとやりやすく作り直したいので アドバイスをお願いします。 文章でうまく説明できていないのでご質問いただけましたら追加でお話します。 どうぞよろしくお願いします。

  • エクセル 表の作る方

    現在、エクセルの表を作成しています。 「シート1」には (例) 日時 科目 入金 出金 残高 1/1 負担金 10    10 ・・ ・・    ・・ ・・ という項目別に上から順に入力し、 「シート2」には、科目別の金額集計表を作りたいと思っています。 (例)  科目  金額  負担金 10 という形です。 そこで、「シート1」が何行になるか分からないのですが、 「シート2」で金額を集計する場合、Sumif関数を使ってあらかじめ範囲を指定しておく必要があると思いますが、「シート1」に入力すると範囲が自動的に変更される方法はあるのでしょうか? (例)日時 科目 入金 出金 残高 1/1 負担金 10    10 ・・ ・・    ・・ ・・ ※当初は範囲を2行目までの選択であったが、3行目を入力すると範囲が3行目に自動的に変る。

このQ&Aのポイント
  • MFC-J4540Nを受け取り、テスト印刷を試みたところ用紙詰まりエラーが発生しました。
  • 紙を取り除き、エラーを解除しても次の紙でも同様のエラーが発生し、テスト印刷ができません。
  • この状態が繰り返されており、どう対処すれば良いか困っています。
回答を見る

専門家に質問してみよう