プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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
    • good
    • 3
この回答へのお礼

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

お礼日時:2009/09/14 15:40

   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キーを「エイヤッ!」と叩き付け
    • good
    • 0

一例です。


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

この回答への補足

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

補足日時:2009/09/14 13:03
    • good
    • 2

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

    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています