将 15 X 25 Excel 矩阵重新排列为三列

将 15 X 25 Excel 矩阵重新排列为三列

在 Excel 中,我有从 A1 到 O5 (15 X 25) 单元格中的数据。

我希望重新安排事情,以便我有以下内容

  [A1][B1][C1]   
  [D1][E1][F1]   
  [G1][H1][I1]   
  [J1][K1][L1]  
  [M1][N1][O1]   
  [A2][B2][C2]   
  [D2][E2][F2]

...等等。

我尝试过但未能找到一种在 Excel 中实现此目的的优雅方法。有人能给我一些建议吗?

我见过但他们似乎在玩一个略有不同的游戏。

答案1

以下是 VBA 截图:

Option Explicit

Sub rearrange()
Dim aValues As Variant
Dim i As Integer, j As Integer
Dim lRow As Long

'store the values in an array
aValues = Worksheets("Sheet1").Range("A1:O5").Value
lRow = 1

With Worksheets("Sheet2")
    For i = 1 To UBound(aValues, 1)
        For j = 1 To UBound(aValues, 2) Step 3
            .Cells(lRow, 1).Value = aValues(i, j)
            .Cells(lRow, 2).Value = aValues(i, j + 1)
            .Cells(lRow, 3).Value = aValues(i, j + 2)
            lRow = lRow + 1
        Next j
    Next i
End With
End Sub

答案2

这能满足你的需要吗?

  • 将 E21 设置为=INT((ROW(A1)-1)/5)
  • 将 F21 设置为=MOD(ROW(A1)-1,5)
  • 将 A21 设置为=INDIRECT("R" & ($E21+1)&"C" & (COLUMN(A21)+$F21*3),FALSE)
  • 将 A21 复制到 B21 和 C21
  • 将 A21:F21 向下复制所需的行数。
  • 使用“粘贴特殊值”将 A21:Cnn 转换为值而不是公式。

相关内容