我有一长串导入到excel中的值。
为简单起见,假设我有1行100个单元格,值为1到100。 我想知道是否有一种简单的方法来复制它,以便它会产生一个表10x10,第1行为1到10,第2行:11到20等等
我尝试使用偏移功能,但不成功。
答案 0 :(得分:2)
您可以使用vba(假设100行的行是第20行)
for i = 1 to 10
for j = 1 to 10
cells(i, j) = cells(20, j + 10 * (i - 1))
next j
next i
答案 1 :(得分:0)
如果您需要准确的帮助,请提供您已做过的示例,以便我们提供帮助,而不是期望我们为您编写代码。不过,根据您的要求,这是一个相当简单的片段:
Dim i As Integer
Sheets(1).Activate
For i = 1 To 10
Range(Cells(1, (i * 10) - 9), Cells(1, (i * 10))).Copy
Sheets(2).Cells(i, 1).PasteSpecial
Next i
从第一张纸的最上面一行复制,并在第二张纸上将其作为10x10矩阵。
答案 2 :(得分:0)
在没有宏的情况下处理此问题的一种简单方法:
或者,请参阅此文章以使用VBA宏执行此操作。 https://superuser.com/questions/700104/transpose-data-in-columns-to-rows-downwards
答案 3 :(得分:0)
没有VBA:
如果第一行中有数据,则选择一个单元格,比如单元格 B3 并输入以下公式:
=INDEX($1:$1,1,(10*ROWS($1:1)-10)+(COLUMNS($A:A)))
然后将 B3 从 B4 复制到 B11
然后通过 B11 向下复制 B3
这是一个例子::
答案 4 :(得分:0)
VBA和非VBA解决方案都可以在其他答案中显示。一个更简单的非VBA公式(不需要第1行中的值)是:
=(ROW()-1)*10+COLUMN()
假设您的数据以A1开头。如果您的起始单元格是D4,那么您也可以执行以下操作:
=(ROW()-ROW($D$4))*10+COLUMN()-COLUMN($D$4)+1