• ベストアンサー

Excelで複数列かつ複数行分の一括並べ替えについて教えてください

Excel2003を使っています。 【例】 A1:N530の表の中の一部分D1:I530範囲(6列で530行)部分のみを 列単位で一括で並べ替えしたいと思っております。 D1:I530範囲には6列に23、96、11、106、72、49といったように530行全てランダムに数値が入っております。これを各行毎に全て左から昇順に530行分一括並べ替えしたいということでございます。 エクセル機能の「データ」→「並べ替え」→「現在選択する範囲を並べ替える」→「オプション」→「列単位」を指定して列単位に並べ替えは出来たのですが1行ずつしかソート出来ません。 このやり方では530回並べ替え作業をすることになり、時間的に余裕がないのでこの場合にExcel2003の機能で一括で530行分を列単位でもって左から並べ替えをする方法があるでしょうか? ちなみにExcel2007もまだ使ったことないですが所持しています。 仕事上緊急でご質問させていただいております。是非助けてください。

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

  • ベストアンサー
  • xls88
  • ベストアンサー率56% (669/1189)
回答No.4

>セル背景色も一緒にソート移動されているかなと思った・・・・・ 下記マクロを試してください。 Sub test1() Dim r As Range Dim srng As Range Set srng = Range("D1:D530") For Each r In srng '列単位昇順並べ替え r.Resize(, 6).Sort Key1:=r, _ Order1:=xlAscending, Header:=xlGuess, OrderCustom:=1, _ MatchCase:=False, Orientation:=xlLeftToRight, _ SortMethod:=xlPinYin, DataOption1:=xlSortNormal Next End Sub

yamapipi
質問者

お礼

一瞬で解決いたしました。 本当にありがとうございました。 まさかマクロでの御指導が来るとは想像もしていなかったですが、これを機会に自身もマクロの勉強努力いたします。

その他の回答 (3)

noname#204879
noname#204879
回答No.3

   D  E  F  G  H  I  …  O  P  Q  R  S  T 1   23  96  11 106  72  49 …  11  23  49  72  96 106 2  340 490 351 216 423 477 … 216 340 351 423 477 490 3  239 211 224 448 155 432 … 155 211 224 239 432 448    …  …  …  …  …  … …  …  …  …  …  …  … 528 423 482 221 491  21 239 …  21 221 239 423 482 491 529 125 334 159 436 185  73 …  73 125 159 185 334 436 530 330  62 438 132 291 448 …  62 132 291 330 438 448 1.セル O1 に次式を入力して、これを右方に5列ドラッグ&ペースト 2.範囲 O1:T1 を下方にズズーッとドラッグ&ペースト   (上表はその結果を示している) 3.そのままの状態で、[コピー]した後で、そのまンま[値の貼り付け] 4.そのままの状態で、Ctrl+Xキーを「エイヤッ!」と叩き付け 5.セル D1 を選択して、Ctrl+Vキーを「エイヤッ!」と叩き付け

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

一例です。 (1)データシートをsheet1、抽出シートをsheet2として、sheet2のA1に =SMALL(Sheet1!$D1:$I1,COLUMN(A1))として右方向に6列分コピー (2)sheet2のA1:F1を選択→下方向に530行分コピー (3)sheet2の並び替え範囲を選択、コピー→データシートのD1を選択→形式を選択して貼り付け→値を選択→OK

yamapipi
質問者

補足

大変ありがとうございました。 ものすごく参考になり実践してみました。 こちらの関数で並べ替えが出来ました! 一転、補足し漏れておりました問題もございました。 数値データは=SMALL(Sheet1!$D1:$I1,COLUMN(A1))関数で並べ替えられましたが、実はこのデータ類には決められた数字に対して決められたセル色が複数色に渡り全ての数字に塗られております。セル背景色も一緒にソート移動されているかなと思ったのですがソートした時点でセル色だけ各セルバラバラになってしまいました。 解決出来るでしょうか? 助けてください。よろしくお願い申し上げます。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

エクセル2003ですがD列からI列を選択して「データ」から「並べ替え」で最優先されるキーに「列D」を選び「昇順」でDからI列のデータは昇順に並びますね。

関連するQ&A

  • Excelの行方向での並べ替え

     行方向に順序がバラバラで入力されている日付データがあります(表1参照)。これを日付の若い順に1列ずつ行方向に並べ変えたいと思っています(表2参照)。  「データ」→「並べ替え」→「オプション」→「列単位」にすることで1行ずつ行方向の並べ替えができることは知っていますが、行数が多いため一括して並べ替えができないか考えております。  どなたかご教示いただければ幸いです。なお、Excel2007を使っています。      A          B        C 1  1996/11/07 1997/02/19 1996/11/21 2  1997/02/19 1997/02/19 3  1996/11/21 4  1997/02/19 1996/11/21 5  1997/02/19 1997/11/06 1997/02/19      ・      ・       (表1:並べ替え前)        ↓ (並べ替え)      A         B         C 1  1996/11/07 1996/11/21 1997/02/19 2  1997/02/19 1997/02/19 3  1996/11/21 4  1996/11/21 1997/02/19 5  1997/02/19 1997/02/19 1997/11/06      ・      ・      (表2:並べ替え後)

  • エクセルでの並べ替え

    一番上の1・2行をタイトル行として並べ替えをしたいのですが。 一部分だけセルを結合してあるところがあります(下記参照) そのため、タイトル行としてみなされず、並べ替えができません。 毎回一行削除して並べ替えをしているのですが、 何か良い方法をご存知ないでしょうか?       |  A列   |  B列  |  C列  | D列 | 1行目  |  住所  |  氏名  |    性別        | 2行目 |     |     |   男  |  女   | 3    | 東京都 | 山田 |    |   女   |    4    | 北海道 | 佐藤 | 男   |      | ・ ・ ・ 表がかけないのでわかりにくくてすみません。   | はセルの境目のつもりです。 住所・氏名の欄は1・2行結合 性別は1行目だけでC・D列結合 その下の2行目にC列2行目は男、D列2行目は女  (このせいで並べ替えができません。) この場合、例えば、性別の欄を削除してタイトルを1行にすれば・・・というのはなしでお願いします。

  • 【Excel VBA】複数範囲の並べ替えは可能でしょうか?

    【Excel VBA】複数範囲の並べ替えは可能でしょうか? Excel2003を使用しています。 CSVデータを元に作成された下記のような表があります。 A列…日付、B列…受注番号、C列…摘要(会社名・品名等)、D列…金額となっています。 6行目以下に上記の内容でデータが入力されていますが、会社ごとのデータ内で日付順に並べ替えをしたいのですが、VBAで複数の範囲を選択して、それぞれの範囲内での並べ替えは可能でしょうか?     A     B     C    D 6             ○○会社 7   1/20   123   AAA   1,000 8   1/15   120   BBB   2,000 9 10              計     3,000 11 12            ××会社 13 計の1行上と下は空欄行で、以下、会社名の後にデータが続くというパターンの繰り返しで数十社分あります。 Excelのデータ⇒並べ替えでは複数選択した状態での並べ替えはできないので、VBAで可能であればと思い、質問させていただきました。 よろしくお願いします。

  • エクセルでの並べ替えについて

    上司に頼まれ1000件くらいあるデータの並べ替えを行いました。 やり方は・・・ 並べ替えをしたい場所を選択し、 「データ」⇒「並べ替え」⇒「最優先されるキー」で列を指定し実行 そのときはきちんと並べ替えできたはずと思っているのですが、 (私は普通にやったつもりだったので、さーっとみて確認しただけでした) 数日後、 「並べ替えをしてもらってから、データがぐちゃぐちゃになってしまった!!」 と上司、 今大変なことになっています。 どんなふうにぐちゃぐちゃになったのかといいますと 途中の行から列ごとに数行づつ、データがずれているのです。 例えば、A列は普通、B列は2行づれ、C列は2行づれ、D列は3行づれ・・・ ちなみに、データはもともと行ごとに色がつけてあります。 これは何か並べ替えに影響しますか? 上司はあまりエクセルのことがわかりません。 上司は検索機能をよく使ったようです。 こんなにぐちゃぐちゃなら、私が並べ替えをした後すぐに気づくはず、 きっと上司が変な操作をしたに違いない。と思っているのですが、 何も証拠はなく、一方的に私が悪いことになっています。 そして何より、バックアップを取っていなかったのです! エクセルは2003です。 いったい何が原因なのでしょうか? 何か直す方法はないでしょうか? よろしくお願いします。

  • 複数行に空白行を一括で挿入したいのですが

    エクセルに関する質問です。 セルA列の14行目から30000行まである数字が入力されています。 各行間に一行ずつ空白行を挿入したのですが マクロを使ったやりかたでもかまいませんので 一括でする方法があれば教えていただけないでしょう?

  • エクセルでの並べ替え

    エクセルでの並べ替えで、ある行の範囲を「並べ替え」をクリックしたら、列Aの左側に来てしまいました。 昨日まで何とも無かったのに突然、起こりました。 又、一部の「行」は通常になります。 教えてください。

  • Excelでの並べ替えを全シートまとめて処理したい

    1ヶ月分(約30枚)のシートがあります。 それぞれ約1000行・150列のデータが入ってます。 全シートまとめて特定の列に並べ替えをかけることはできるのでしょうか? 作業シートを複数選択した時点で、ツールバーの並べ替えマークは反転してしまいます。 仮に一枚づつ作業した場合でも、一番上の行だけ並べ替えされないこともあります。 列選択⇒選択範囲を拡張する⇒並べ替え実行 と普通に行なってるのですが。。 全てのシートではないのですが、上手くいくシートと、 最上行だけ並べ替えされないシートがあるのがなぜだか理解できません(-_-;) 原因と考えられそうなことはなんでしょう? 作業全体、効率的に行う方法をどなたか教えてください。

  • excelで追加した行だけ並べ替えできなくなった

    似たデータを表の下部に追加するため、何行かを選んでコピーし、「コピーしたセルの挿入」にて表の下部に貼り付け、その後で貼り付けたセルの一部データの書き換えを行いました。その後データの並べ替えを行おうとしたのですが、新たに貼り付けた行部分だけ並び順えができません。元のように全体の並べ替えをする方法をご教示下さい。なお元のデータは私自身が作ったものでなく、データの並べ替えは見出し行の所についている▼ボタンに頼っています。データは大部分が文字列で、一列のみが日付です。

  • Excelの並べ替え

    いつもお世話になっております。 今回はExcelの並べ替えについて質問させてください。 先頭行に (A列)日付(B列)約定NO(C列)会社コード(D列)社名(E列)売上金額 などの項目があり、1行ごとにデータが入ったリストがあります。 (売上のデータはどんどん下の行に追加されていくものとします) 社名は取引先が決まっているので同じ社名の異なるデータが何度も出てきます。 そこで、社名を基準に並べ替えて会社ごとの売上金額の合計をとり、その合計金額の大きい順に並べ替えたいのですが・・・ どうもうまくいきません。 まず、『並べ替え』で会社ごとにまとめてから『集計』で合計を出し、その合計をさらに並べ替える事を思いついたのですが、 この方法だと会社名と合計金額以外のデータが表示されなくなってしまいます。 今回は全てのデータが見えている状態で並べ替えたいのです。 また、A社のデータが5行分、B社のデータが10行分、C社のデータが3行分・・・とあり、それぞれの合計金額の順位が C→B→Aだった場合は上からC社の3行B社の10行A社の5行と言ったように表示させたいです。(各社のかたまりは崩したくない) この場合どのようにしたらうまく並べ替えることが出来るでしょうか? 非表示や印刷範囲外にしてしまえば問題ないので仮の列や行を新たに追加することは可能です。 もしわかる方いましたら教えてください。 ※説明不足で申し訳ありません。不明な点ありましたら補足します。

  • エクセル複数条件の並べ替えについて

    こんばんは。 いつもお世話になり、ありがとうございます。 現在、エクセル2007を利用しております。 現在、並べ替えが上手くいかず、頭を抱えています。 -------------------------------------------------------    A    B    C    D    E 1 区名  町名  丁目  番地  枝番 2 ●区  △△町 05    200   005 3 ●区  △△町 01    300   004 4 ●区  ○○町 03    900   008 5 ●区  ○○町 00    315   200           ・           ・           ・ ------------------------------------------------------- 上記のような表を 町名ごとでまとめ、C列(丁目)・D列(番地)・E列(枝番)の番号を若い数字順に並べ替えたいと思っています。 並べ替えで、 ・町名 ・丁目 ・番地 ・枝番 の優先順位で並べ替えをしてみたのですが、枝番だけ若い数字順なりません。 4条件が揃うような並べ替えの方法というのはあるのでしょうか。 ちなみに、△△町・○○町共各数百行はあります。 ご存知の方がおられましたら、どうかご教授下さいますと助かります。 どうぞよろしくお願いします。

専門家に質問してみよう