こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル行の内容ではなく行番号で並べ替えたい

エクセルで、行の内容(値)ではなく行番号で降順に並べ替えたいです。
元の最終行が並べ替え後は1行目に来て、元の1行目が並べ替え後は最終行に来るようにしたいのです。
どこかの列に連番で数字を入れれば、その数字を元に並べ替えられるのは知っています。
それ以外の方法をご存知でしたら、教えて下さい。

よろしくお願いいたします。

投稿日時 - 2017-11-23 13:13:15

QNo.9400425

困ってます

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

変わった内容の質問だ。「コピーしてー順序を逆にして貼り付け」、の操作がエクセルにあればよいが、ない。行と列を入れ替えて貼り付けはある。
そこで仕組みを考えて、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コードの修正は簡単。
関数による回答のみ受け付ける質問者が多いが、そうなら本回答は無視して。

投稿日時 - 2017-11-23 21:31:21

お礼

>今回はA列ー>B列(にアウトプット)としたが、多列のデータを1度に対象にするなら、別シートの同じセル位置か、同シートの上の方に元データを置き、列の下の方(データ行数+αより下の行部分)に結果を出せばよい。

今回、特定の列だけでなく行全体を並べ替えたかったのですが、いただいた例をもとに、別シートに行全体を並べ替えることができました。

ご回答くださり、ありがとうございました。
ベストアンサーとさせていただきます。

投稿日時 - 2017-11-23 22:24:06

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

[No.1お礼]へのコメント、
》 特定の列だけでなく、行全体を並べ替えたい
そんなこと、何処に書いてありましたか?

》 何か方法がありましたら…
大ありのコンコンチキですよ。
「行全体の並べ替え」ということは、別シートに、というだけで、全く同じ式で行けるはず。
別シートに =OFFSET(Sheet1!A$3,(COUNTA(Sheet1!A:A)-1)-(ROW(A1)-1),)
これを右方および下方にオートフィルするだけで!

投稿日時 - 2017-11-23 21:13:15

お礼

>》 特定の列だけでなく、行全体を並べ替えたい
>そんなこと、何処に書いてありましたか?
今まで特定の列のみの並べ替えをしたいと思ったことがないため、書き方が悪かったようです。
不快な思いをさせてしまい、申し訳ございません。
新たな方法をご回答くださり、ありがとうございました。

投稿日時 - 2017-11-23 22:17:23

ANo.1

添付図参照
C3: =OFFSET(A$3,(COUNTA(A:A)-1)-(ROW(A1)-1),)

投稿日時 - 2017-11-23 15:28:15

お礼

ご回答くださり、ありがとうございます。
試してみたところ、確かにA列を行番号の降順に並べ替えることができました。
ですが今回、特定の列だけでなく、行全体を並べ替えたいのです。
何か方法がありましたら、またアドバイスをお願いいたします。

投稿日時 - 2017-11-23 16:30:33

あなたにオススメの質問