• 締切済み

グループに順位をつけ、降順に並べ替えたい

セルA1からE5までを1つのグループとして、D1に当該月の売り上げ総額があります。これが40グループあって(2グループ目はA6からE10、D6に売上総額という形)、これをグループ内の項目・数字を固定したまま売上総額の順位による並べ替えをしたいのです。何かいい方法はあるでしょうか?

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

データ例ぐらい挙げて、質問内容を説明すべきだ。 また関数、VBA、その他どこまでなら質問者は理解できるのか、注記しておくべきだ。 関数しか念頭にないのだろうな、と想像して、VBAは避けて下記をやってみた。 基本は「ソート法」なのだが、説明が長くなるが、判ってもらえるかな。 また質問者のニーズが、「はっきり」とは伝わらない。 ーー データ例 A1:D11 営業マン氏名 営業所 売上 コード 山田 横浜 34 11 水野 水戸 57 21 上島 調布 62 31 大川 横浜 41 11 鶴野 調布 69 31 神田 水戸 38 21 鳥島 横浜 46 11 遠野 水戸 31 21 上尾 調布 24 31 黒川 横浜 51 11 コードは下記で説明する。VLOOKUP関数で出したもの。 営業所の列(B列)を指定しておいて データーフィルタの詳細設定ー指定した範囲ーF1:F9-重複するレコードは無視する。 で、F1:H4に 営業所 横浜 水戸 調布 とでる.営業所名の重複しないリストができた。 ーー 営業所売上合計をSUMIF関数で出す。 G2に式 =SUMIF($B$2:$B$11,F2,$C$2:$C$11) を入れて、営業所数だけ縦方向に複写する。 横浜 172 水戸 126 調布 155 H1:H4に コード 11 21 31 を入れる(手入力。人間が決める、会社で決まっているとか)。 G2に式 =SUMIF($B$2:$B$11,F2,$C$2:$C$11)を入れて下方向に営業所数だけ複写する。 F1;H4は下記となる。営業所売上合計と営業所コードを入力したものができる。 営業所 売上合計 コード 横浜 172 11 水戸 126 21 調布 155 31 ーー D2に式 =VLOOKUP(B2,$F$2:$H$4,3,0)を入れて営業マンの最下行まで式を複写(各営業マンの行に営業所コードを付加した) ーー F2:H4をコピーして B12:C14に貼り付け 、D12:D14には営業所(合計行のための)のコードを 10 20 30 と貼り付ける。たとえば10台のコードの最小のコード10を割り当て、ソートして一番上に出るようにしている。一番下を望むなら19、29、39とかにする。 ーー これを、手操作でソートする。 第一キーは「コード」 第二キーは「売上」でソート ーー 結果 営業マン氏名 営業所 売上 コード 横浜 172 10 黒川 横浜 51 11 鳥島 横浜 46 11 大川 横浜 41 11 山田 横浜 34 11 水戸 126 20 水野 水戸 57 21 神田 水戸 38 21 遠野 水戸 31 21 調布 155 30 鶴野 調布 69 31 上島 調布 62 31 上尾 調布 24 31

noname#243026
質問者

お礼

非常に曖昧な質問で失礼いたしました。また丁寧なご指導ありがとうございました。

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

簡単です F1列にダミーのデータとして、 F1にD1の値を入れます。(数値のコピーでも数式でも可) F2にD1の値を入れます。 F5まで同じことを繰り返します。 F6にD6をいれます。 F7にD6をいれます。 以下繰り返し 以下各グループで同じことの繰り返し 最後にF列の値で並べ替えです

noname#243026
質問者

お礼

ありがとうございます!

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

[No.1補足]へのコメント、 誤解の無いやうに説明しておきます。 「手元に各社のデータ」を示せとは申しておりません。 貴方の言葉だけでは傳はりさうもないので、デッチアゲ・データから成るサンプル表でも示されたら如何と提案した丈です。 「うまく説明できません」ですと? 其れでは上手く囘答出來る筈も無からうと思ふのは私だけかも。 他者の囘答を御待ちあれ。さやうなら。

noname#243026
質問者

お礼

バカとはつらいものです。ありがとうございました。

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

セットするのがかなり手間がかかりそうですが GからK列に並び替えた結果を出すとします。 L1に1 L6に = MAX(L$1:OFFSET(L2,-1,0))+1 以下総額の入った行のL列に上記をコピーします。5行飛ばしで連番ができると思います。 J1に(参考に6グループ分だけ示します) =LARGE(($D$1,$D$6,$D$11,$D$16,$D$21,$D$26),L1) または 、総額のセルを全て選択して名前を付けて(たとえば「総額」) =LARGE(総額,L1) でも それを、以下総額の入った行のJ列にコピーします。総額だけが5行飛ばしで降順に並びます。 G1に(たぶん200行までだと思いますが最終行を指定してください) =INDEX(A$1:A$200,MATCH($J$1,$D$1:$D$200,0)+ROW(A1)-1,1) として 横方向K列までと5行目までコピーしてください。すでに表示されている総額のセルは除く。 G6に =INDEX(A$1:A$200,MATCH($J$6,$D$1:$D$200,0)+ROW(A1)-1,1) として上記と同じようにK列までと行は該当グループ最後の部分までコピーしてください。 5行飛ばしで(各グループの最初の行のG列) 式をコピーして式の「$J$6」の行指定の部分を各グループの最初の行番号に変更してからグループ範囲にコピーして下さい。 上記をグループ分行ってください。 マクロが利用可能でしたらマクロでの対応も可能です。

noname#243026
質問者

お礼

ありがとうございます!

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

「グループ内の項目・数字を固定したまま売上総額の順位による並べ替えを」する前と、した後との關係が理解出來ません。其の前後をサンプル表で示して下さい。

noname#243026
質問者

補足

msMike様 手元に各社のデータがないのでうまく説明できませんが、各グループの総売り上げだけを抜き出して順位による並べ替えをするのではなく、売り上げの多いグループごと(5行まとめて)に並べ替えたいのです。説明が下手くそで申し訳ありません。

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

関連するQ&A

  • EXCEL複数グループ内で欠損値を除いて順位を振る

    EXCELで複数のグループ内で順位を表示させるようにしたいのですが、 間に欠損値「-」があります。 SUMPRODUCT関数を用いて、グループ内順位を振る方法はわかったのですが 欠損値を除く方法が分かりません。 欠損値の場合は順位ではなく「-」を入力したいです。 A列 B列 C列 D列 E列 グループ1 グループ2 スコア グループ1での順位 グループ2での順位 関東 東京 40 1 1 関東 東京 30 3 2 関東 東京 20 5 3 関東 埼玉 35 2 1 関東 埼玉 25 4 2 関東 埼玉 - - - ・  ・ ・  ・ いまは一度並べ替えをして、順位を降っています。 ですが、順位を振るのはひとつではないため、何度も並べ替えが必要に なっています。 関数で並び替えをせずに順位を振ることはできませんでしょうか。 マクロ対応でなければ無理でしょうか。 (Excelのバージョンは2003です) よろしくお願いします。

  • EXCEL2007でグループ別の順位を昇順で

    こんばんは 下記のD列の順位を関数で計算する方法を教えてください。 C列の点数をもとにA列のグループ別の順位を昇順でつけたいのです。 宜しくお願い致します。 Aグループ  B氏名  C点数 D順位 1        あ    10    1 1        い    20    2 1         う    30    3 1        え    40    4 1        お    50    5 2        か    50    4 2        き    40    3 2        く     30    2 2        え    20    1 2        お    80    5 3        え    20    2 3        い    90    5 3        う    10     1 3        あ    50    3 3        お    60    4

  • エクセルで数字を抽出後、降順に並べ替えたい

    49通 52通 52通 48通 43通 36通 50通 のように並んでるデータがあります。 それを、『通』を除外して数字を抽出して、降順に並べ替えたいです。 違うセルに出てくる形でもOKなので教えていただけたらとても助かります。 今までは、区切り位置で『通』を消してそれから並べ替えをつかっていたのですが、ちょっと手間がかかるので、もっと速い方法があればと思って質問しました、よろしくお願い致します。

  • 順位付け

       A  B  C  D  E 1  A  6  5  2  3  2  B  3  4  1  1 3  C  9  5  3  5 4  D  6  4  2  1 5  D  0  4  0  -4 A列、チ-ム名 B列、勝点 C列試合数 D列、勝数 E列、得失点差 このようなシ-トがある場合、別のセルに1位~5位までの順位付けする関数を教えてください。 尚、勝点が同点場合は得失点差を考慮します。

  • エクセルの順位付けについて

    Sheet1に以下のデータがあります。      項目A 項目B 項目C 項目D 合計   順位 みかん   5   0.22    3    2  10.22    6 りんご   3   1.2    1    3   8.2     3 ばなな   4   2.2    3    1  10.2     5 いちご   1   1.5    2    3   7.5     1 ぶどう   2   1.5    3    1   7.5     1 れもん   3   2.5    1    3   9.5     4 ちなみに、項目A~Dの数値は、パラメータ(ウェイト)を変更する ことによって、変わります。したがって、順位も変わります。 そこで、Shee2では、パラメータを変更するたびに変わる順位順に 出したいのですが、どのようにすればよいでしょうか。 ご教示頂ければ幸いです。 最終形のイメージは以下ののとおりです。 順位      項目A 項目B 項目C 項目D   合計    1  いちご   1   1.5    2    3     7.5  1  ぶどう   2   1.5    3    1     7.5  3  りんご   3   1.2    1    3     8.2  4  れもん   3   2.5    1    3     9.5  5  ばなな   4   2.2    3    1    10.2    6  みかん   5   0.22    3    2    10.22  なお、順位のところは、1、2、3・・・と順番になるケースもあれば 1、2、2、4となるケースもあるかと思っています。 よろしくお願いします。

  • SQL文 2つのテーブルから、グループごとの合計を求める

    テーブル名:グループ表 ID   グループ名 ------------------------- 100   Aグループ 101   Bグループ 102   Cグループ 103   Dグループ 104   Eグループ テーブル名:売上表 ID   売上年月日   売上額 ------------------------------ 101   20090401   1000 101   20090501   2000 102   20090401   2500 102   20090503   1500 103   20090404   3000 103   20090506   4000 上記の2つのテーブルがあります。 グループごとの売上合計一覧を出します。 ■求めたいSELECT文結果 グループ名   合計(売上額) ---------------------- Aグループ    0 Bグループ   3000 Cグループ   4000 Dグループ   7000 Eグループ    0 select グループ名,sum(売上額)  from (select グループ名,売上額     from グループ表,売上表      where グループ表.ID = 売上表.ID)   group by グループ名 では、 グループ名   合計(売上額) ---------------------- Bグループ   3000 Cグループ   4000 Dグループ   7000 となってしまい、うまくいきません・・・ どうように書いたらよろしいでしょうか?

  • 特定条件の下でグループ化

    お世話になります。 SQL文でご質問があります。 たとえば以下のようなデータがあったとします。 項目1, 項目2, 項目3, 項目4 -------------------------------- 1  ,  A  ,  0  ,  10 2  ,  A  ,  0  ,  20 3  ,  B  ,  1  ,  30 4  ,  B  ,  0  ,  40 5  ,  C  ,  0  ,  50 6  ,  C  ,  0  ,  60 7  ,  D  ,  1  ,  70 8  ,  D  ,  1  ,  80 9  ,  E  ,  0  ,  90 10  ,  E  ,  1  ,  100 ここから[項目3] = 1 のレコードが含まれているもの に限り[項目2]でグループ化し、 [項目4]の合計値を求めて 項目2   ,   項目4 --------------- B  ,  70 D  ,  150 E  ,  190 と取得したいのですが、1回のSQL文で取得できるのでしょうか? ご存知のかたがいらっしゃいましたら、どうかご教授ください。m(__)m

  • エクセル 順位表

    エクセル 順位表 いつもお世話になります。 売上実績表の中に、順位表を追加したいのですが、実績表から抽出すると、同一の実績の営業所は、すべて同じ営業所になってしまい困っています。 A    B    C   D    E   F 営コード 実績      順位  営コード  実績 2     200   1   5  500 3   400   2   3  400 4   300   3   4  300 5   500   4   4  300 6   300   5   4  300 7    300 順位3、4、5位は、それぞれ4,6,7の営業所コードを表示したいのですが、どうしたらいいでしょうか。 F列には、F2=LARGE(B:B,ROW(A1)) E列には、E2=INDEX(A:A,MATCH(F2,B:B,0)) 営業所数は100程あり、ピボットテーブルを使用せずに作成したいです。 色々条件がついてますが、よろしくお願い致します。

  • 順位表のフリーウェア?

    ダーツの各競技の順位表がほしいのですが、このフリーウェアなら使えるよ。ってものがあれば教えて下さい。 A~Gの7人でそれぞれの点数を記入します。 例えば、 A:340点 B:500点 C:280点 D:380点 E:100点 F:560点 G:430点 ↓ 自動で F:560点 B:500点 G:430点 D:380点 A:340点 C:280点 E:100点 今はエクセルで毎日点数を更新し、セルを移動 しながら順位を変えています。 よろしくお願いします。

  • 並べ替えした順位の(元セル番号)を知りたい

    お世話になります。 はじめて質問します、よろしくお願い致します。 1行に1回目・2回目・~5回目と回数が並び、 2行に11・12・18・11・15と点数が並んで います。1行の5回目の後に、1位・2位・~5位と順位をつけて2行に関数SMALLを使って!並べ替えしました、これで小さいスコアーから順位は出たことになりますが、ご質問はここからです。 見てみると「11」が重複しています、見て2位の11は「1回目の11点(A2)」だ!3位の11は「4回目の11点(D2)」だと、わかるようにMATCHを使ってセルの位置を現そうとしたのですが!・・・重複している為出せません、アドバイスお願い致します。

専門家に質問してみよう