重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

以下のように並んだファイル名を、A1から逆に並び替えれますか?
マクロor以下文字列をB列に移動して、関数でも並び替えられればいいです

ご存じの方、教えて下さい

A1 売上一覧20250421173839.xlsx
A2 あいうえお20250418173839.csv
A3 売上一覧20250418173838.xlsx

  • 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
  • 今の自分の気分スタンプを選ぼう!
あと4000文字

A 回答 (5件)

以下のようにしてください。


A列の内容を逆に並べ替えます。
もし、並べ替えた結果をB列に出力したい場合は、
最後の
ws.Range("A1:A" & lastrow).Value = arrR

ws.Range("B1:B" & lastrow).Value = arrR
に変えてください。


Public Sub 逆に並び替え()
Dim ws As Worksheet
Dim lastrow As Long
Dim arr As Variant
Dim arrR As Variant
Dim i As Long
Dim j As Long
Set ws = ActiveSheet
lastrow = ws.Cells(Rows.Count, 1).End(xlUp).Row
arr = ws.Range("A1:A" & lastrow).Value
arrR = arr
j = 1
For i = UBound(arr, 1) To 1 Step -1
arrR(j, 1) = arr(i, 1)
j = j + 1
Next
ws.Range("A1:A" & lastrow).Value = arrR
End Sub
    • good
    • 0

ついでに



>B列に移動して、関数でも並び替え

の関数を回答しておきます。
 下記の関数をB1セルに入力してから、オートフィル等を使ってB2以下にコピーして下さい。

=IF(ROW()-ROW(B$1)<MATCH("*?",$A:$A,-1),INDEX($A:$A,MATCH("*?",$A:$A,-1)-ROW()+ROW(B$1)),"")
    • good
    • 0

回答No.2です。



下記の参考URLのページに先程私が回答した方法や、質問者様が希望されているマクロが掲載されています。


【参考URL】
Excelで「行」や「列」の順番を逆にする方法 - Lifehacker
https://www.lifehacker.jp/article/208910excel-qu …
    • good
    • 0

もしその操作が今後も繰り返し行う事がある場合にはマクロで行った方が良いと思いますが、もしそうではなく、その操作が今回限りの1回のみしか行わない操作だった場合には、マクロや関数など使わずに、Excelの並べ替え機能を使って手動で行った方が手っ取り早いと思います。



 まずオートフィルを有効にしておいて(←デフォルトのままなら既に有効になっている筈です)から、(ファイル名が入力されている最初のセルであるA1セルの隣のセルである)B1セルに数値の1を入力し、その直下のB2セルに数値の2を入力して下さい。
 次にB1:B2のセル範囲を選択してから、B2セルの右下の角にカーソルを合わせて、カーソルの形状が黒い「+」マークに変わったら、その状態のままでマウスの左ボタンをダブルクリックして下さい。するとB列に上から順番に1以降の数が並びます。
 次にA:Bの列範囲を選択してから、[ホーム]タブの[編集]グループの中にある[並べ替えとフィルター]ボタンをクリックし、現れた選択肢の中にある[ユーザー設定の並べ替え]をクリックして下さい。
 すると「並べ替え」ダイアログボックスが現れますので、最優先されるキーとしてB列を選択し、並べ替えの順序として「大きい順」を選択してから、ダイアログボックスの[OK]ボタンをクリックして下さい。
 そうすればB列に入力されている数値が大きい順にA:B列の行が並べ替えられますので、A列の上下の順番が最初の状態から逆転します。
    • good
    • 0

こんばんは



3行限定で良いものと仮定してよいのなら・・

スピル機能が使えるExcelバージョンなら、B1セルに
 =INDEX(A1:A3,4-ROW(A1:A3))
を入力。

旧来のバージョンなら、B1セルに
 =INDEX(A$1:A$3,4-ROW())
を入力して下方にフィルコピー。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!