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

干杯。

相关内容