- ベストアンサー
エクセルデーターの行並び順の反転方法
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 このあたりを参考にやってみてください。 Google検索等で「Excel 選択範囲 並べ替え」で検索すれば、他の解説記事も数多くヒットします。 https://forest.watch.impress.co.jp/docs/serial/exceltips/1165323.html
その他の回答 (5)
- m_and_dmp
- ベストアンサー率54% (987/1817)
データの範囲(B4:I27) を選択し、選択範囲の適当な場所でマウス右クリックし、「並べ替え」→「昇順」 マクロでやりたいなら、 -------------------------------------------------------- Sub Test() ActiveWorkbook.Worksheets("data").Sort.SortFields.Clear ActiveWorkbook.Worksheets("data").Sort.SortFields.Add2 Key:=Range("B4:B27"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("data").Sort .SetRange Range("B4:I27") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub -------------------------------------------------------- Key:=Range("B4:B27") は、B列をキーとして並べ替える設定です。 .SetRange Range("B4:I27") は、並べ替えの範囲です。 データの範囲が違う場合は、上記のセル範囲を修正してください。
補足
ありがとうございます。 マクロでという質問が間違いでした。 要するにデーターの並べ替えを簡単にする方法を 知りたいだけです。 浅い知識のため誤解を招き申し訳ありません。
- kkkkkm
- ベストアンサー率66% (1725/2595)
No3の補足です。 Range(Cells(4, i), Cells(LastRow, i)).Value = data の Range(Cells(4, i), Cells(LastRow, i)).Value は 時間経過の表の書き替える場所を指定してください。 セルの位置が同じでシートだけが変わる場合は Sheets("書き替えたいシート名").Range(Cells(4, i), Cells(LastRow, i)).Value = data としてください。
- kkkkkm
- ベストアンサー率66% (1725/2595)
とりあえずマクロでしたら以下の方法で試してみてください。 Sub Teat() Dim data As Variant Dim i As Long Dim LastRow As Long, LastColumn As Long, FirstColumn As Long LastRow = 27 FirstColumn = Range("B4").Column LastColumn = Range("I4").Column 'Sheets("Sheet1").Cells(3, Columns.count).End(xlToLeft).Column For i = FirstColumn To LastColumn data = Range(Cells(4, i), Cells(LastRow, i)).Value Call Reverse(data) Range(Cells(4, i), Cells(LastRow, i)).Value = data Next End Sub Sub Reverse(ByRef data As Variant) Dim low As Long low = LBound(data, 1) Dim high As Long high = UBound(data, 1) Dim temp() As Variant ReDim Preserve temp(low To high) Dim count As Long count = (high - low) + 1 Dim i As Long For i = 0 To count - 1 temp(low + i) = data(high - i, 1) Next For i = 0 To count - 1 data(low + i, 1) = temp(low + i) Next End Sub 参考: https://www.tipsfound.com/vba/02021
補足
ありがとうございます。 マクロでという質問が間違いでした。 要するにデーターの並べ替えを簡単にする方法を 知りたいだけです。 浅い知識のため誤解を招き申し訳ありません。
- aokii
- ベストアンサー率23% (5210/22062)
日時で下から上に表示されているのでしたら、コピペでエクセルにコピーしてから日時で上から下に並べ替えるのが簡単ですが、自動で並べ替える場合はマクロになります。
補足
一行づつではなくデーターのセル範囲をドラッグして 一度に並べ替えができますか? 一行づつでは手間がかかり過ぎです。
- hiro_1116
- ベストアンサー率30% (2563/8280)
そのデータ範囲だけを選択しておいて、時刻の昇順にソートすれば良いように思いますが、そででも手順が煩雑ということでしょうか?
補足
すみません、時刻の昇順にソートする操作を具体的に おしえて下さい。 エクセルはwin10のPC購入時にプリインストールのVer です。
お礼
出来ました。 (初歩?)テクニックを1つ覚えました。 ありがとうございました。