• ベストアンサー

エクセルデーターの行並び順の反転方法

本日より気象庁のアメダスの気象データー(1時間毎の気温、降水量etc)の並び方が変更されました。先日までは上から順に下に向かい時間経過とともに各データーが表示されていましたが今日から下から上に表示されています。長年このデーターを集計してきましたが不便極まりないです。なお、このデータはコピペでエクセルにコピーできます。 エクセル上で上から下への時間経過の表へ書き換える方法(マクロ) を教えて下さい。毎日の作業になるので手間の少ない方法を希望。 エクセルに取り込んだデーターの写真を添付します。 並び替えはデーター部分だけで良いです。

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

  • ベストアンサー
  • hiro_1116
  • ベストアンサー率30% (2563/8280)
回答No.6

No.1です。 このあたりを参考にやってみてください。 Google検索等で「Excel 選択範囲 並べ替え」で検索すれば、他の解説記事も数多くヒットします。 https://forest.watch.impress.co.jp/docs/serial/exceltips/1165323.html

FattyBear
質問者

お礼

出来ました。 (初歩?)テクニックを1つ覚えました。 ありがとうございました。

その他の回答 (5)

  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.5

データの範囲(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") は、並べ替えの範囲です。 データの範囲が違う場合は、上記のセル範囲を修正してください。

FattyBear
質問者

補足

ありがとうございます。 マクロでという質問が間違いでした。 要するにデーターの並べ替えを簡単にする方法を 知りたいだけです。 浅い知識のため誤解を招き申し訳ありません。

  • kkkkkm
  • ベストアンサー率66% (1725/2595)
回答No.4

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)
回答No.3

とりあえずマクロでしたら以下の方法で試してみてください。 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

FattyBear
質問者

補足

ありがとうございます。 マクロでという質問が間違いでした。 要するにデーターの並べ替えを簡単にする方法を 知りたいだけです。 浅い知識のため誤解を招き申し訳ありません。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.2

日時で下から上に表示されているのでしたら、コピペでエクセルにコピーしてから日時で上から下に並べ替えるのが簡単ですが、自動で並べ替える場合はマクロになります。

FattyBear
質問者

補足

一行づつではなくデーターのセル範囲をドラッグして 一度に並べ替えができますか? 一行づつでは手間がかかり過ぎです。

  • hiro_1116
  • ベストアンサー率30% (2563/8280)
回答No.1

そのデータ範囲だけを選択しておいて、時刻の昇順にソートすれば良いように思いますが、そででも手順が煩雑ということでしょうか?

FattyBear
質問者

補足

すみません、時刻の昇順にソートする操作を具体的に おしえて下さい。 エクセルはwin10のPC購入時にプリインストールのVer です。

関連するQ&A