将列转换为Excel中的1000个批次中的其他列

时间:2017-06-21 19:24:13

标签: excel excel-formula

我有一张工作表,我将7000行数据粘贴到A1列。

当数据为A1000时,我希望接下来的1000行转到B列,填充单元格B1:B1000。我希望接下来的1000转到C列,填充单元格C1:C1000等等。

理想情况下,我希望通过公式实现这一点。我不想使用任何手动命令(即Transpose等)

我查看了类似的问题,并没有找到一个专门回答我问题的问题 - 提前谢谢!

2 个答案:

答案 0 :(得分:2)

使用此公式:

=IF(ROW()>1000,"",IFERROR(INDEX(Sheet1!$A:$A,ROW()+(COLUMN(A1)-1)*1000),""))

Sheet1!$ A:$ A是您在sheet1中的数据 在另一个工作表中,在A1中编写上述公式,并在列和行中拖动

enter image description here

答案 1 :(得分:2)

在工作表的代码表中。

Option Explicit
Const iMAX As Long = 5

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1")) Is Nothing Then
        On Error GoTo safe_exit
        Application.EnableEvents = False
        Dim r As Long
        For r = iMAX + 1 To Cells(Rows.Count, "A").End(xlUp).Row Step iMAX
            With Cells(r, "A").Resize(iMAX, 1)
                Debug.Print .Address
                .TextToColumns Destination:=.Parent.Cells(1, 1).Offset(0, r / iMAX), _
                               DataType:=xlFixedWidth, FieldInfo:=Array(0, 1)
                .Clear
            End With
        Next r
    End If
safe_exit:
    Application.EnableEvents = True
End Sub

enter image description here