営業成績のランキング表をエクセルで作りたいです。
当然のことながら、手作業ではなく一瞬で変換する方法です。
基本的なことで恐縮ですが、、作成方法教えてください。
よろしくお願いします。
(いつもはピボットテーブルで作成していましたが、エクセルでのランキング表を希望しています)
山田 太郎 北口支店 500
木村 次郎 西山支店 200
山田 太郎 北口支店 300
佐藤 三郎 東支店 1000
佐藤 三郎 東支店 200
山田 太郎 北口支店 600
(実際は膨大なデータです)
↓
1位 山田太郎 北口支店 1400
2位 佐藤三郎 東支店 1200
3位 木村次郎 西山支店 200
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは!
VBAでの一例です。
元データはSheet1にあり、↓の画像のような配置になっているとして、
Sheet2に表示するとします。
Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り、マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
Sub Sample1() 'この行から
Dim lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet1")
With Worksheets("Sheet2")
.Cells.Clear
wS.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=.Range("B1"), unique:=True
lastRow = .Cells(Rows.Count, "B").End(xlUp).Row
With Range(.Cells(2, "C"), .Cells(lastRow, "C"))
.Formula = "=SUMIF(Sheet1!A:A,B2,Sheet1!C:C)"
.Value = .Value
End With
With Range(.Cells(2, "A"), .Cells(lastRow, "A"))
.Formula = "=RANK(C2,C:C)"
.NumberFormatLocal = "0位"
End With
.Range("A1") = "順位"
.Range("C1") = "合計"
With .Range("A1").CurrentRegion
.Sort key1:=.Range("C1"), order1:=xlDescending, Header:=xlYes
.Borders.LineStyle = xlContinuous
.Columns.AutoFit
End With
End With
End Sub 'この行まで
※ 関数でないのでデータ変更があるたびにマクロを実行する必要があります。m(_ _)m
あ、ありがとうございます。
VBAは使ったことがないので、申し訳ないんですがAlt+F11キー → メニュー・・・ここで脱落しました。メニューボタンがない・・・。
それより、もっと平易な方法はないのでしょうか?
やはりピボットテーブルでやるべきなのでしょうか。
(エクセルでないとその後の変更、加工がやりづらくて仕方ないので質問しました。)
No.3
- 回答日時:
関数で対応するなら、D列を補助列にした以下のような手順が簡単です。
D2セルに以下の式を入力して下方向にオートフィルコピー。
=IF(COUNTIF($B$2:B2,B2)=1,SUMIF($A$2:$A$1000,A2,$C$2:$C$1000)+ROW()*10^-10,"")
G2セルに以下の式を入力し、右方向に1つ下方向に適当数オートフィルコピー。
=IFERROR(INDEX(A:A,MATCH(LARGE($D$2:$D$1000,ROW(A1)),$D$2:$D$1000,0)+1),"")
I2セルに以下の式を入力し下方向にオートフィルコピー
=IFERROR(INT(LARGE($D$2:$D$1000,ROW(A1))),"")
順位のF2セルには以下の式を入力し下方向にオートフィルコピー
=IFERROR(RANK(I2,$H$2:$I$1000),"")
#ご使用のエクセルのバージョンが記載されていませんでしたので、ひとまずExcel2007以降のバージョンで対応できる数式にしました。
Officeソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。
No.4
- 回答日時:
No.2です。
>それより、もっと平易な方法はないのでしょうか?
No.3さんが的確な回答をしてくださっていますので、
関数で処理する場合はNo.3さんのような方法になると思います。
>VBAは使ったことがないので、申し訳ないんですがAlt+F11キー → メニュー・・・ここで脱落しま>した。メニューボタンがない・・・。
ここからは試しだと思ってトライしてみてください。
まず、前回のコードを画面上で範囲選択(ドラッグ) → 右クリック → コピー
次にAlt+F11キー → メニューバーの中に「挿入」という項目がありますので、それをクリック
→ そうすると「プロシージャ」・「ユーザーフォーム」という項目が表示されます。
その中に「標準モジュール」がありますので、それをクリック → 白いVBE画面が表示され、カーソルが点滅しています。
白い画面上で右クリック → 貼り付け
これで完了です。
後はExcel画面(Sheet1)に戻って
Alt+F8キー → マクロ名が表示されている画面が表示されますので、「実行」をクリックしてみてください。
※ Sheet1のSheet名はそのまま「Sheet1」という前提のコードです。m(_ _)m
ありがとうございます。
質問しておきながら・・・ですが
いったんピボットデーブルで作成、「値貼り付け」でエクセルに展開、罫線付けてエクセルのランキング表作成・・・が一番手っとり早いですかね。
数百のデータも1分以内にエクセル化できちゃいますので。(ちょっと手作業っぽいですが)
No.5
- 回答日時:
多分、貴方はピボテの並べ替えをご存じない?
ピボテを作成すると Fig-1 の右図のようになると思います。
(但し、Nameフィールドの集計なし、書式オプションの“列の総計”なし、に設定)
ピボテ内にマウスカーソルを置いて、
1.[ピボットテーブル]→[並べ替えでトップテンを表示]を実行
2.[自動並べ替えオプション]で“降順”を選択
3.[使用するフィールド]で“合計/Amt”を選択
すると、「一瞬で」Fig-2 が得られますけどォ~
No.6
- 回答日時:
データにタイトルを追加して、
名前 支店 金額
山田太郎 北口支店 500
データをT1へ登録して、以下のSQLを実行する
SELECT
T1."名前",
T1."支店",
SUM(T1."金額")
FROM T1
GROUP BY
T1."名前",
T1."支店"
ORDER BY
SUM(T1."金額") DESC
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ゼロを表示
-
Excelの計算が合いません。 諸...
-
今まで文字化けなく開けていたc...
-
Excelの警告について
-
ExcelでASCを使って全角を半角...
-
スプレッドシートで指定された...
-
作成した数式を値として表示し...
-
EXCELの散布図で日付が1900年に...
-
Excel関数について教えてくださ...
-
Excel関数について教えてくださ...
-
マクロの処理が遅くなった
-
エクセルを使用して、円周率を...
-
エクセルでファイルの最終更新...
-
エクセルのセル内に分数などの...
-
条件付き書式設定で罫線を引き...
-
シートの情報を別のシートへま...
-
【マクロ】フォルダ内にあるPDF...
-
エクセルで曜日を入れたい
-
Microsoft 365Excelの見開きペ...
-
Excelで時間の計算の方法 7時45...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
Excelで数値を時間数に変換する...
-
エクセルの数式バーのフォント...
-
エクセルで数字の組み合わせを...
-
エクセルを使用して、円周率を...
-
Excelで特定の文字列が含まれて...
-
Excel 対象のセルに入力が無い...
-
任意の値が存在する行に名前を...
-
エクセルでファイルの最終更新...
-
index関数の説明をお願いします。
-
条件付き書式でやりたいのですが
-
重複しない値を取り出したい
-
【ExcelVBA】UTF-8(BOM無)でC...
-
【マクロ】マクロが割当てされ...
-
エクセル IF計算式?でしょうか?
-
エクセルで曜日を入れたい
-
表中の指定した条件の文字列を...
-
【Excel】版が同じ事を示す番号...
-
EXCELの散布図で日付が1900年に...
-
Excelについて。Excelに縦1列に...
おすすめ情報