繁体   English   中英

如何在Excel或R中将一列的数据拆分为多个相等的n列?

[英]How to split data of one column into multiple equal n columns in Excel or R?

我有500个值的列。 我想将其分为5列,每列100个值。

Sample Input
1
2
3
4
...
50

输出:

Column 1
1...100
Column 2
101..200
column 3
201..300
column 4
301..400
column 5
401..500

Excel或R中有什么方法可以使其变得容易吗? 我的文件格式是csv。

假设输入数据在A列中,并且输出从B列开始,请尝试以下宏。 将其分配给按钮有多种用途。

Sub SplitInto100CellsPerColumn()
  Dim X As Long, LastRow As Long, vArrIn As Variant, vArrOut As Variant
  LastRow = Cells(Rows.Count, "A").End(xlUp).Row
  vArrIn = Range("A1:A" & LastRow)
  ReDim vArrOut(1 To 100, 1 To Int(LastRow / 100) + 1)
  For X = 0 To LastRow - 1
    vArrOut(1 + (X Mod 100), 1 + Int(X / 100)) = vArrIn(X + 1, 1)
  Next
  Range("B1").Resize(100, UBound(vArrOut, 2)) = vArrOut
End Sub

对于A列中数据,在B1中输入:

=INDEX($A:$A,ROWS($1:1)+(COLUMNS($A:A)-1)*100)

并向下和横向复制。

在此处输入图片说明

编辑#1:

如果您的数据以A2而不是A1开头,请使用以下命令:

=INDEX($A$2:$A$99999,ROWS($1:1)+(COLUMNS($A:A)-1)*100)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM