- ベストアンサー
エクセル行の内容ではなく行番号で並べ替えたい
エクセルで、行の内容(値)ではなく行番号で降順に並べ替えたいです。 元の最終行が並べ替え後は1行目に来て、元の1行目が並べ替え後は最終行に来るようにしたいのです。 どこかの列に連番で数字を入れれば、その数字を元に並べ替えられるのは知っています。 それ以外の方法をご存知でしたら、教えて下さい。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
変わった内容の質問だ。「コピーしてー順序を逆にして貼り付け」、の操作がエクセルにあればよいが、ない。行と列を入れ替えて貼り付けはある。 そこで仕組みを考えて、VBAで作ってみる。 標準モジュールに Sub test01() lr = Range("A10000").End(xlUp).Row MsgBox lr j = Range("A1").End(xlDown).Row MsgBox j For i = lr To 1 Step -1 Cells(j, "B") = Cells(i, "A") j = j + 1 Next i End Sub と入れて実行する。 例 A列にA2:A6に a c v h n とすると、 結果B列に B2;B6 n h v c a 今回はA列ー>B列(にアウトプット)としたが、多列のデータを1度に対象にするなら、別シートの同じセル位置か、同シートの上の方に元データを置き、列の下の方(データ行数+αより下の行部分)に結果を出せばよい。VBAコードの修正は簡単。 関数による回答のみ受け付ける質問者が多いが、そうなら本回答は無視して。
その他の回答 (2)
- msMike
- ベストアンサー率20% (364/1804)
[No.1お礼]へのコメント、 》 特定の列だけでなく、行全体を並べ替えたい そんなこと、何処に書いてありましたか? 》 何か方法がありましたら… 大ありのコンコンチキですよ。 「行全体の並べ替え」ということは、別シートに、というだけで、全く同じ式で行けるはず。 別シートに =OFFSET(Sheet1!A$3,(COUNTA(Sheet1!A:A)-1)-(ROW(A1)-1),) これを右方および下方にオートフィルするだけで!
お礼
>》 特定の列だけでなく、行全体を並べ替えたい >そんなこと、何処に書いてありましたか? 今まで特定の列のみの並べ替えをしたいと思ったことがないため、書き方が悪かったようです。 不快な思いをさせてしまい、申し訳ございません。 新たな方法をご回答くださり、ありがとうございました。
- msMike
- ベストアンサー率20% (364/1804)
お礼
>今回はA列ー>B列(にアウトプット)としたが、多列のデータを1度に対象にするなら、別シートの同じセル位置か、同シートの上の方に元データを置き、列の下の方(データ行数+αより下の行部分)に結果を出せばよい。 今回、特定の列だけでなく行全体を並べ替えたかったのですが、いただいた例をもとに、別シートに行全体を並べ替えることができました。 ご回答くださり、ありがとうございました。 ベストアンサーとさせていただきます。