• 締切済み

営業成績ランキング表(エクセル)

営業成績のランキング表をエクセルで作りたいです。 当然のことながら、手作業ではなく一瞬で変換する方法です。 基本的なことで恐縮ですが、、作成方法教えてください。 よろしくお願いします。 (いつもはピボットテーブルで作成していましたが、エクセルでのランキング表を希望しています) 山田 太郎 北口支店 500 木村 次郎 西山支店 200 山田 太郎 北口支店 300 佐藤 三郎 東支店  1000 佐藤 三郎 東支店   200 山田 太郎 北口支店 600 (実際は膨大なデータです) ↓ 1位 山田太郎 北口支店 1400 2位 佐藤三郎 東支店   1200 3位 木村次郎 西山支店  200  

みんなの回答

回答No.6

データにタイトルを追加して、 名前 支店 金額 山田太郎 北口支店 500 データをT1へ登録して、以下のSQLを実行する SELECT T1."名前", T1."支店", SUM(T1."金額") FROM T1 GROUP BY T1."名前", T1."支店" ORDER BY SUM(T1."金額") DESC

noname#204879
noname#204879
回答No.5

多分、貴方はピボテの並べ替えをご存じない? ピボテを作成すると Fig-1 の右図のようになると思います。 (但し、Nameフィールドの集計なし、書式オプションの“列の総計”なし、に設定) ピボテ内にマウスカーソルを置いて、 1.[ピボットテーブル]→[並べ替えでトップテンを表示]を実行 2.[自動並べ替えオプション]で“降順”を選択 3.[使用するフィールド]で“合計/Amt”を選択 すると、「一瞬で」Fig-2 が得られますけどォ~

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

No.2です。 >それより、もっと平易な方法はないのでしょうか? No.3さんが的確な回答をしてくださっていますので、 関数で処理する場合はNo.3さんのような方法になると思います。 >VBAは使ったことがないので、申し訳ないんですがAlt+F11キー → メニュー・・・ここで脱落しま>した。メニューボタンがない・・・。 ここからは試しだと思ってトライしてみてください。 まず、前回のコードを画面上で範囲選択(ドラッグ) → 右クリック → コピー 次にAlt+F11キー → メニューバーの中に「挿入」という項目がありますので、それをクリック → そうすると「プロシージャ」・「ユーザーフォーム」という項目が表示されます。 その中に「標準モジュール」がありますので、それをクリック → 白いVBE画面が表示され、カーソルが点滅しています。 白い画面上で右クリック → 貼り付け これで完了です。 後はExcel画面(Sheet1)に戻って Alt+F8キー → マクロ名が表示されている画面が表示されますので、「実行」をクリックしてみてください。 ※ Sheet1のSheet名はそのまま「Sheet1」という前提のコードです。m(_ _)m

kdsalad00
質問者

お礼

ありがとうございます。 質問しておきながら・・・ですが いったんピボットデーブルで作成、「値貼り付け」でエクセルに展開、罫線付けてエクセルのランキング表作成・・・が一番手っとり早いですかね。 数百のデータも1分以内にエクセル化できちゃいますので。(ちょっと手作業っぽいですが)

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答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ソフトはバージョンによって使用できる機能や操作方法が大きく異なりますので、質問の際には必ずバージョンを明記するようにしましょう。

kdsalad00
質問者

お礼

ありがとうございます

  • tom04
  • ベストアンサー率49% (2537/5117)
回答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

kdsalad00
質問者

お礼

あ、ありがとうございます。 VBAは使ったことがないので、申し訳ないんですがAlt+F11キー → メニュー・・・ここで脱落しました。メニューボタンがない・・・。 それより、もっと平易な方法はないのでしょうか? やはりピボットテーブルでやるべきなのでしょうか。 (エクセルでないとその後の変更、加工がやりづらくて仕方ないので質問しました。)  

noname#204879
noname#204879
回答No.1

》 …一瞬で変換する方法です 「ピボットテーブル」以外の「一瞬で変換する方法」とは、マクロによる方法をご所望ですか? どの程度の「一瞬」なんでしょ?

kdsalad00
質問者

お礼

「手計算でそれぞれの実績を計算、打みなおして、ソートをかける・・・」(THE手作業)   この方法以外でもっと早い正確な方法を希望します。 10秒で、30秒で、ワンクリックで・・・という意味ではありません。

関連するQ&A

  • 次の条件を満たすSQL文をご教示下さい。

    テーブル名: list no | first_name | last_name | comment ----+------------+-----------+--------- 1 | 太郎 | 山田 | ほげ 2 | 次郎 | 田中 | ふが 3 | 花子 | 山田 | ぴよ 4 | 三郎 | 佐藤 | ぴよ 5 | 太郎 | 山田 | ぴよ 6 | 次郎 | 田中 | ふー 7 | 三郎 | 佐藤 | ふー 8 | 花子 | 山田 | ふー 上記の表から同じ”last_name”を持つ人の”first_name”と”last_name”を重複無しで抽出する(下記のような結果)SQL文は作成可能でしょうか。 結果 first_name | last_name ------------+----------- 太郎 | 山田 花子 | 山田 宜しくお願いします。

  • エクセルでの顧客数のカウント

    エクセルで下記のような表を作っています。 A   B       C 日付 顧客名   売上 10/1 山田太郎  1000 10/5 中村次郎  2000 10/10 鈴木三郎  1000 10/22 中村次郎  2000 10/31 山田太郎  1000 この時に、10月1か月の顧客数をカウントしたいのです。 上記であれば、山田太郎、中村次郎、鈴木三郎の3人ということになるはずです。 どのようにすればできますでしょうか。

  • エクセル:このような「予定表」を作りたいのです。

    よろしくお願いします。 ◆シート1に5分単位で次のような入力を行います。 職員氏名 顧客氏名 訪問予定時間 終了時間 備考 ------------------------ 山田太郎 鈴木一郎  7:05     8:35   ×× 海川三郎 ○○    ○:○○    ○:○○ 山田太郎 佐藤次郎  9:00    10:15   ▲▲ 川波五郎 ○○    ○:○○    ○:○○  山田太郎 田中六郎 13:00    14:25   □□  ◆シート2に関数でつぎのような表示を出したいのです       7:00 7:30 8:00 8:30 9:00 9:30 ・・・ ------------------------ 山田太郎  7:05~8:35    9:00~10:15・・・         鈴木一郎    佐藤次郎 ・・・         ××       ▲▲  ・・・ ------------------------ ◆シート2の時間もセルの列を5分単位で区切ってセル幅を短くし、該当時間に条件付書式で色をつけるイメージです。 ◆職員数数十名、顧客数数百名で曜日別に作成するため、重くなるのは仕方ありませんが、シート2の作成するための「ヒント」がほしいのです。関数を主体に作成いたしたく、四苦八苦したのですが、どうもうまくできません。ご指導をよろしくお願いいたします。

  • Excelのドロップダウンリストについて

    Sheet1において, A列 B列 1 田中太郎 2 佐藤次郎 3 山田三郎 のようなリストを作成してあるとします。 Sheet2において, A1のセルに1を入力すると,B1のセルに田中太郎と表示される様,B1にVLOOKUP($A1,Sheet1!$A$1:$B$3,2,0)と入力しています。 この時,A1をドロップダウンリストで入力する場合,リストの表示と入力値を変更するようなことはできるのでしょうか。 すなわち,リストには, 田中太郎 佐藤次郎 山田三郎 と表示され, 田中太郎 を選ぶとA1には1が入力され,B1にはVLOOKUP関数の効果として田中太郎と表示されるといった具合です。 当方,HTMLは理解しておりますので,HTMLで意図をご説明させていただければと思います。 HTMLでプルダウンボックスを使う場合の入力として, <SELECT name="ボックス名"> <OPTION value="1">田中太郎</OPTION> <OPTION value="2">佐藤次郎</OPTION> <OPTION value="3">山田三郎</OPTION> </SELECT> ということになります。 これと同じようなことがエクセルで可能なのかどうかという質問でございます。

  • エクセルで文字列を数えて一覧表にしたいのですが

    たとえばですが、2人一組で配達に行きます。 メンバーは、太郎、次郎、三郎、四郎、五郎・・・と多人数です。 A1に太郎、B1に三郎 A2に次郎、B2に五郎 A3に太郎、B3に次郎 ・ ・ ・ と、いうような表ができます。 このとき、*郎は何回配達にいったのかをカウントしたいのです。 *郎は、A、Bのどちらに登場するかわかりませんし、 何回も登場しますし、組み合わせもばらばらです。 最終的に、太郎 15回、次郎 8回、三郎 21回・・・というように分かるようにしたいので、 仮にD1に太郎、E1に次郎、F1に三郎・・・の名前 (ダブって登場する名前を一つにまとめて、登場する全ての名前を残したい)、 D2に太郎、E2次郎、F2に三郎の回数(登場した名前の回数を数字で求めたい) というようにしたいのです。 エクセルの詳しい方、よろしくお願いします。

  • Excelセルで縮小表示

    例えばセルに以下を入力しますと 山田太郎(改行) 山田次郎(改行) 山田三郎 縮小表示だと 山田太郎山田次郎山田三郎 になります。 折り返して全体表示だと 山田太郎 山田次郎 となり、山田三郎隠れて見えないのです。これを全体的に縮小表示はできませんか。お願いします。

  • エクセルのピボットテーブル集計ごとに印刷

    お世話になります ピボットテーブルでの印刷ですが全体の印刷はすぐに可能ですが 集計ごとの印刷は大変です。 集計ごとに印刷させるVBA等ありましたらよろしくお願いします 太郎 売り上げ|100 交通費 |100 集計 |200 次郎 売り上げ|100 交通費 |100 集計 |200 三郎 売り上げ|100 交通費 |100 集計 |200 上記がピボットとします。 太郎、次郎、三郎同時に印刷させるのではなく A4用紙1枚で太郎の表 A4用紙1枚で次郎の表 A4用紙1枚で三郎の表 と 個々に印刷させたいのですがこんなわがままな印刷ボタンできますか? わかる方ご教授よろしくお願い致します。

  • エクセルの同じ名前をカウントする方法

    エクセルの同じ名前をカウントする方法 初歩的な質問ですみません。 山田太郎 田中一郎 鈴木三郎 高橋次郎 鈴木三郎 高橋次郎 鈴木三郎 A1のセルにこういった状態で名前が入力されていた場合に 山田太郎 1 田中一郎 1 鈴木三郎 3 高橋次郎 2 となるように同じ名前がいくつあるかをカウントさせ上記のように表示させたいのですが、 どうしたらいいのでしょうか? (同じシートでも、別のシートでもどちらでも構いません) 至急お答えいただけるとありがたいです。 よろしくお願いします。 

  • ピボットテーブルで同じデータがうまく集計できない(Excel2003)

    ピボットテーブルで同じデータがうまく集計できない(Excel2003) こんにちは。 Excel2003で、個人の支払金額のリストを作成し、それを元に ピボットテーブルを作成していますがうまくいきません。 【例】  山田花子 3,000  佐藤太郎 5,000  田中一郎 5,000  山田花子 1,500  ↓ピボットにすると  山田花子 3,000  山田花子2 1,500  佐藤太郎 5,000  田中一郎 5,000 という結果になってしまいます。 本来は山田花子は1件で4,500になるはずですが…。 元のリストのデータを入力し直して更新しても改善されません。 元のリストのデータに余分な空白やシングルクォーテーション等が 入力されていないかも確認しましたが、ありませんでした。 ご教授宜しくお願いします!

  • 作詞・作曲・編曲 英語で

    歌謡曲のクレジット欄によく見られる次の表現を英語に訳してください。 「作詞・山田太郎 作曲・鈴木次郎 編曲・佐藤三郎 歌・高橋四郎」

専門家に質問してみよう