2017-06-21 105 views
0

我有一個工作表,我將7000行數據粘貼到列A1中。當他的數據A1000,我想要下一1000行到列B,填充單元格B1:B1000。我希望下一個1000轉到C列,填充單元格C1:C1000等。理想情況下,我希望通過公式來實現。我不想使用任何手動命令(即轉置等)在Excel中批量轉換列爲其他列中的列

我看過類似的問題,並沒有找到一個具體回答我的問題 - 預先感謝!

回答

2

使用這個公式:

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

工作表Sheet1 $ A:$ A是你在Sheet1
數據在另一個表寫在A1上面的公式,並在列和

行拖動它

enter image description here

+0

的IFERROR似乎有點多餘;我無法看到INDEX返回#N/A的任何方式,但它*可能*返回* 0 *而不是空白單元格。 – Jeeped

+0

它在1000處切斷,但我希望數據表中的單元格A1001開始在我的其他表格中填充單元格B1:B1000。一旦B1000被填充,我希望它開始填充C1:C1000。那有意義嗎? – TheJDScott

+0

只需將第一行中的公式水平拖動即可 – yass

1

在工作表的代碼表中。

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

+0

這是完美的。謝謝。 – TheJDScott