• ベストアンサー

エクセルのソートについて

     A B C   男 1 2 2 E 女 2 1 3   計 3 3 5   男 2 1 2 F 女 3 2 2   計 5 3 4   男 1 1 2 G 女 2 3 2   計 3 4 4 このようなエクセルの表で計をキーにソートしたいのですができますか? それとも配列自体を変えるべきでしょうか?

質問者が選んだベストアンサー

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

こんばんは! No.1さんの補足の内容を拝見すると もしかして↓の画像のようにA列が結合されているのでしょうか? もしそうであれば同じ行で結合セルがあったり、なかったりでは並び替えができませんので 結合を解除させてやる必要があると思います。 そこでVBAになってしまいますが、一例です。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) 尚、元データはアップした画像のように1行目に項目があり2行目から規則的にデータがあるとします。 Sub 並び替え() 'この行から Dim i As Long, Kei As Variant Application.ScreenUpdating = False Range("A:A").Insert For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row Step 3 Cells(i, "B").UnMerge Cells(i, "A").Resize(3, 1) = Cells(i + 2, "D") Next i Range("A1").CurrentRegion.Sort key1:=Range("A1"), order1:=xlAscending, Header:=xlYes Range("A:A").Delete For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row Step 3 Cells(i, "A").Resize(3, 1).Merge Next i Application.ScreenUpdating = True End Sub 'この行まで ※ 一旦マクロを実行すると元に戻せませんので、 別Sheetでマクロをためしてみてください。m(_ _)m

jack-rose
質問者

お礼

ありがとうございます。 結局ソート用の別シートで対応しました。

その他の回答 (4)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

>計をキーにソートしたい あなたが元のご相談に書いた表では、ABCの一体どれを元にどう並べ替えたいのか全く説明が無いので、とりあえずAだけにします。他の事(たとえばABC3つの全合計の昇順とか)をしたいときは、適切に応用してください。 手順:添付図 D2に =C4 D3に =C4 D4に =C4 を記入 D2:D4をまとめて表の下端までコピー 表全体をD列の昇順で並べ替えれば出来上がり。 #補足 いわずもがなですが、A列のまんなかにEとかFとか書くのは一向かまいませんが、セル結合してはいけません。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

表構成を変える方が良いと思いますよ? ExcelはVBAでも使わない限り、 ブロック単位で自動で動かすのは至難の技ですから。 ソートは行単位でも列単位でも行えますが、 ソート対象に他の物が混ざっていない事が前提ですからね。 混ざってても問答無用でぐちゃぐちゃにしちゃいますよ? 如何でしょうか? お役に立てていたならば幸いです。

  • mpascal
  • ベストアンサー率21% (1136/5195)
回答No.2

組の合計でソートしたいなら 組  男  女  計 A   1  2  3 B   2  3  5 C   1  2  3 このような表にして、計の列でソートですね。

  • mpascal
  • ベストアンサー率21% (1136/5195)
回答No.1

よく意味がわかりません。 表として、入力情報は判るけど、どういう結果欲しいのかが判らない。 あと、左の列の、E、F、G の意味も不明。

jack-rose
質問者

補足

ローマ字にしたのが分かりにくくしてしました。 すいません。    男 1 A組女 2    計 3    男 2 B組女 3    計 5    男 1 C組女 1    計 2 これを下になるように    男 1 C組女 1    計 2    男 1 A組女 2    計 3    男 2 B組女 3    計 5 このようになるようにしたいのです。

関連するQ&A

  • excel 7条件一括のソート方法

    excelの表を7条件 一度の操作でソートしたいです。 A      B     C    D    E     F     G     H       data1  data2 小計1   data3  data4  小計2   合計 Aさん   28    27     55    30    25     55    110 Dさん   29    26     55    30    25     55    110 Cさん   27    28     55    29    26    55     110 Bさん   28    28     56    27    27    54     110 上記のEXCELの表があった場合の ソート条件  1 H列の数が少ない順  2 1が同じ場合Gが少ない順  3  2が同じ場合Fが少ない順 4 3が同じ場合Eが少ない順 5 4が同じ場合Dが少ない順 6 5が同じ場合Cが少ない順 7 6が同じ場合Bが少ない順 となるように するには どうしたらよいでしょうか?    間違いをなくすために 数度のソートを繰り返すことはしたくありません。         よろしくお願いいたします  

  • 配列のソートについて質問です。

    配列のソートについて質問です。 2つのキーで配列の中身をソートしたいのですが、スマートな書き方があれば教えてください。 そもそも間違っている、などのご指摘でもありがたいです。 @t1 = map {(split /,/)[1]} @data; @t2 = map {(split /,/)[2]} @data; @data = @data[sort {$t1[$a] <=> $t1[$b] or $t2[$a] <=> $t2[$b]} 0 .. $#t1]; @dataの内容 A,1,2 B,1,3 C,2,1 D,3,2 E,3,1 F,1,1 出力結果 F,1,1 A,1,2 B,1,3 C,2,1 E,3,1 D,3,2 よろしくお願いします。

    • ベストアンサー
    • Perl
  • 配列のソートについて

    配列をソートした時、もともとデータのあった配列番号を記憶しておきたいのですが いい方法はないでしょうか (31,55,84,20,96,14); //1 2 3 4 5 6 ↓ (14,20,31,55,84,96) //6 4 1 2 3 5    ※ソート前の配列番号 いくつかの行(配列A)の、違う列にあるデータを抜き出して配列Bにまとめた後、配列Bをソート その後、配列Bのもともとの順番の位置の行にあるデータを上からコピーしていく感じで行ごとのソートを考えています イメージはこんな感じです a[0]=[1,512,200]; a[1]=[3,100,1]; a[2]=[4,100,265]; a[3]=[8,300,1]; //ソート対象を抜き出す b[0]=a[0][1]; b[1]=a[1][2]; b[2]=a[2][0]; b[3]=a[3][1]; b.sort(); c[0]=a[b[0]のソート前の配列番号]; c[1]=a[b[1]のソート前の配列番号]; c[2]=a[b[2]のソート前の配列番号]; c[3]=a[b[3]のソート前の配列番号];

  • Excelのソートのやり方

    オリコンチャートを画像のようにExcelで表にしているのですが 月~日、週は手動?入力で 計は月~日を足した物で=SUM(D141:D147)みたいなやつで勝手に足してくれてるんですが この計を数字が大きい順にソート?したいです。 10000 9000 8000 12000 8500を 12000 10000 9000 8500 8000にしたいのですが表を作るまでは全く使ったことがないので よくわかりません。 やり方があれば教えてください。2007です。

  • エクセル2002でのソートについて

    A B C 1 A1 B1 C1 2 __ B2 C2 3 A5 B5 C5 4 __ B4 C4 5 A3 B3 C3 6 __ B6 C6    ↓ソート A B C 1 A1 B1 C1 2 __ B2 C2 3 A3 B3 C3 4 __ B4 C4 5 A5 B5 C5 6 __ B6 C6 (1)A列をキーに (2)1と2行,3と4行,5と6行を一纏めに ソートする方法はありますでしょうか?

  • EXCEL

    A-B-C-D-E-F-G 1-A-W-A-1-B- 2-B-A-N-2-C- 3-C-K-A-3-B- 4-D-A-I-4-E- 5-E-R-X-5-A- 例えば,エクセルで表のようになっている場合に, 列AにF1の値(表の場合は文字B)で検索をかけ,検索に該当した行(表の場合では行2)の列Dの値をG1に表示する方法はあるでしょうか?? 簡単に言うと,列Gに自動的にFに対応するDの数値を入力したいのです.自動的に列Gを下の表のようにすることは可能でしょうか? A-B-C-D-E-F-G 1-A-W-A-1-B-2 2-B-A-N-2-C-3 3-C-K-A-3-B-2 4-D-A-I-4-E-5 5-E-R-X-5-A-4 投稿すると文字がずれてしまって表が見難くてすいません. どなたか,ご教授よろしくお願いします.

  • 複数のキーで配列をソートするには?

    配列が複数あって、キーを3つでソートする場合には どのようにしたらよろしいでしょうか? @a = ("A","B","C","B","A" ); @b = ("Y","X","Z","X","Z" ); @c = (4,3,5,2,1); 結果として、 A,Y,4 A,Z,1 B,X,2 B,X,3 C,Z,5 のように表示したいのですが、2次元配列でないと無理でしょうか? ちょっと分かりにくいかもしれませんが、Excelなどで、3つのキーで 優先順位を設定してソートするようなイメージです。

    • ベストアンサー
    • Perl
  • VB2005からExcelのソートを行う方法

    現在、VB2005からExcelを動かしていますが、Excelのセルに番号を振っておき、それに応じてソートやオートフィルターなどを行うことって可能ですか? ExcelVBAなら、 Sub sort1() 'ソートを実行するサンプル Range("B10:C16").Sort Key1:=Columns("B") End Sub →B10からC16までをB列によりソートする。 みたいにできるようなんですが・・・。 あと、VBからExcelを動かすような場合、役立つ本とかありましたらあわせて教えてください。

  • こんなソートがしたいです。教えてください!

    エクセル2003で 下記のようなデータをソートし、 【ソート前】 2208550 92059184 92059174 92059174B 92059174A 92059174C 1348535 19777225 2519034 2519034D 2519034B 2519035A 2519035C 【ソート後】 1348535 19777225 2208550 2519034 2519034B 2519034D 2519035A 2519035C 92059184 92059174 92059174A 92059174B 92059174C 上記ソート後の結果を得られるマクロを作りたいです。 よろしくお願いいたします。

  • ハッシュのハッシュのソート

    rubyでハッシュのソート方法についてはいくつか情報のサイトを見つけられました。 ですが今やりたいのは、ハッシュのハッシュのソートなのですが、うまいやり方がわかりませんでした。 具体的には、 h1 = {"user1"=>{"a"=>10, "b"=>20, "c"=>30"}, "user2"=>{"d"=>5, "e"=>8}, "user3"=>{"f"=>10, "g"=>5, "h"=>10} } というようなハッシュのハッシュを想定しています。ユーザごとに案件ごとの必要工数(時間)をハッシュとして持たせ、全工数が多いユーザ順にソートしたいのです。 上記の場合だと、 {"user1"=>{"a"=>10, "b"=>20, "c"=>30"}, "user3"=>{"f"=>10, "g"=>5, "h"=>10}, "user2"=>{"d"=>5, "e"=>8} } というようにソートしたいのですが、何かやり方がありましたらご教授いただけますでしょうか。

    • ベストアンサー
    • Ruby

専門家に質問してみよう