[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『A列から一度に昇順で並び替える方法』(えりっち)
全ての行のデータをA列から一度に昇順で並び替える方法。
エクセルのデータの並び替えの仕方について教えて下さい。
A1〜F100の範囲に数値データが入っている表があります。
このデータを、全ての行がA列からF列に向かって昇順になるように一度に並べ替える
方法がありますでしょうか?
通常の並び替え機能を使ってやってみたのですが、うまくいきません。
一行一行選択して、データ→並べ替え→最優先されるキー「列”その列の番号”」昇順、
と設定する作業を全ての行でやる方法(同作業はF4キー1回でもできますが、それでも
ちょっと避けたい作業です)以外に、なにかいい方法はありますか?
並べ替え機能以外にも、数式を使ってする方法などがありましたら、教えていただきたいです。
どうぞよろしくお願いいたします。
具体的にどのようデータなのでしょうか? シートのレイアウトを踏まえて掲載して頂けませんか?
こんなかんじで。 A B C 1 No name data 2 01 abc 500 3 02 def 700
(INA)
A B C D E F
1 項目1 項目2 項目3 項目4 項目5 項目6
2 34 24 58 87 65 21
3 18 49 80 65 4 20
4 20 5 15 38 86 33
5 98 74 46 99 73 81
・
・
・
100
といった感じで、1〜99までの数字がランダムに並んでおります。
どうかお知恵を・・・。
(えりっち)
いちど、範囲をコピーして別シートに、形式を選択して貼り付け→行列入れ替え で貼り付けて、並べ替えして、 また、範囲をコピーして別シートに、形式を選択して貼り付け→行列入れ替え で元に戻しては如何でしょうか?
(INA)
行による並べ替えは、ご指定の方法、もしくは並べ替えのオプションで「列単位」を指定することによりすることができたのですが・・・
ただ、全ての行をA列からF列に向かって昇順に「一度に」並び替えることがどうやってもできないのです(T_T)
通常の並べ替えをすると、「最優先させるキー」に指定した1行のみ並べ替えられ、
他の行は並び替えられません。
「2番目に優先させるキー」、「3番目に優先させるキー」を指定しても同様です。
通常の並べ替えでは、選択した範囲の行を個別に並び替える機能はないのでしょうか?
説明がややこしくてすみません。
(えりっち)
私が説明した操作は試されましたか?
「並べ替え」は列単位で行うものなので、 今回のように行方向で「並べ替え」したいときは、 いちど、行と列を入れ替えればよいのではないかと思ったのですが、 それでは無理だったのでしょうか?
(INA)
こんな方法はどうでっか? VBAですけどナ、皆さんが敬遠しとる難しい事はおまへんねんで、えぇ。 どうです?いっぺん試してみまっか?
気ぃに要らなんだらいけまへんさかい新しいブックを用意しておくんなはれ。 「Alt」+「F11」でVBEを開きます。 「挿入」+「標準モジュール」を選択してください。 その白い画面に下のコードをコピペして下さい。 「Alt」+「Q」でエクセルに戻ります。 準備完了
適当なセルに(まぁえりっちさんの類例通りA2からF列まで)何行か適当なデータを 放り込んでみておくんなはれ。 「Alt」+「F8」でsortを「実行」してみてくだはい。 インプットボックスが表示されますさかい、この場合A2をクリックしてもよろしいし、 A2と入力してもかめしまへん。要するにソートしたいデータの最上行、最左列を指定 してもろたらそれでOKですワ。 どうでっか?それぞれの行が昇順に並べ替えられましたやろぅ?
もし本チャンで使う場合は、他のデータと空白行で分離しとかなあきまへん(コレ重要 デス) まぁ、何でも試して見んことにはなぁ。 ほな・・・(弥太郎) '------------------- Sub sort() Dim Rtn As Range, tbl As Range Dim data(1 To 6) As Integer Dim t As Integer, i As Integer, n As Integer
Set Rtn = Application.InputBox(prompt:="ソートするデータの最上行最左列を教えて下さい", Type:=8) Rtn.Activate Set tbl = ActiveCell.CurrentRegion t = tbl.Rows.Count
For i = 1 To t For n = 1 To 6 data(n) = Application.WorksheetFunction.Small(tbl.Cells(i, 1).Resize(, 6), n) Next n
For n = 1 To 6 tbl.Cells(i, n) = data(n) Next n
Next i End Sub
----
→INAさん
並べ替えはオプションで指定することにより行単位でも可能なので、問題ありませんでした。 ただそれでは「一度に」並べ替えることができないので、困っているところです。。。
→弥太郎さん
ご指定の方法でやってみたら、できました!!ありがとうございました。 ただ、1行目に項目名が入ってない時はうまくいったのですが、1行目に項目名を入れると 下記のようなエラーメッセージが出てうまくマクロが走りませんでした。 なぜなのでしょうか・・・。
「"実行時エラー’1004’ WorksheetFunctionクラスのSmallプロパティを取得できません。"」
ただ、当面はご指導いただいた方法で乗り切れそうです。ありがとうございました!!
(えりっち)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.