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 |
+----------------------+

건배.

관련 정보