Excel - 各セルの最初の行を取得して最後の行に移動するスマートな方法はありますか?

Excel - 各セルの最初の行を取得して最後の行に移動するスマートな方法はありますか?

各セルの最初の行を最後の行に移動する必要があるシートがいくつかあります。たとえば、次のセルがあります:

Chris / Mike / Ralph
Henry / Steve
Mark / Bob

なるだろう

Henry / Steve
Mark / Bob
Chris / Mike / Ralph

正規表現の使用を検討していましたが、これに対処する簡単な方法が見つかりません。セルをテキスト エディターにコピーして貼り付け、それをコピーして戻すと、多くのセルが結合されるため、貼り付けが間違ってしまいます。これを行うためのコード/数式があるかもしれませんが、その方法がわかりません。

どんなアイデアでも助かります!

答え1

これを実行するための簡単な VBA スクリプトを作成することができました。

Sub swap()
    Dim cel As Range
    Dim selectedRange As Range

    Set selectedRange = Application.Selection

    For Each cel In selectedRange.Cells
       Dim lines() As String
       Dim firstLine As String

       lines = Split(cel.Value, vbLf)
       If UBound(lines) > 0 Then
        firstLine = lines(0)
        lines(0) = lines(UBound(lines))
        lines(UBound(lines)) = firstLine
        cel.Value = Join(lines, vbLf)
        End If
    Next cel
End Sub

答え2

補助列を追加して削除することができます。

+----------------------+
|         NAMES        |
+----------------------+
| Chris / Mike / Ralph |
+----------------------+
| Henry / Steve        |
+----------------------+
| Mark / Bob           |
+----------------------+

これに

+----------------------+------------------+
|         NAMES        |     AUX          |
+----------------------+------------------+
| Chris / Mike / Ralph | =count(@[NAMES]) |    
+----------------------+------------------+
| Henry / Steve        |     1            |
+----------------------+------------------+
| Mark / Bob           |     2            |
+----------------------+------------------+

次に列順に並べ替えてAUX完了です。=count()数式を使用したので、最初の行を最大数としてn、他の行は 1 から で始まりますn-1。次に列を削除します。

+----------------------+------------------+
|         NAMES        |     AUX          |
+----------------------+------------------+
| Henry / Steve        |     1            |
+----------------------+------------------+
| Mark / Bob           |     2            |
+----------------------+------------------+
| Chris / Mike / Ralph | =count(@[NAMES]) |
+----------------------+------------------+

その後

+----------------------+
|         NAMES        |  
+----------------------+
| Henry / Steve        |  
+----------------------+
| Mark / Bob           | 
+----------------------+
| Chris / Mike / Ralph |
+----------------------+

乾杯。

関連情報