각 셀의 첫 번째 줄을 마지막 줄로 이동하는 데 필요한 시트가 몇 개 있습니다. 예를 들어 다음은 하나의 셀입니다.
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 |
+----------------------+
건배.