在 Excel 中每 10 行将一列转换为一个新列

在 Excel 中每 10 行将一列转换为一个新列

我在 Excel 中有一组 110 个数字。我想将其拆分为 11 列,每列 10 行。

因此,对于列:

324
292
300
120
276
320
984
136
300
280
69
289
266
292
266
494
315
118
295
289

我想要的输出是:

324 69
292 289
300 266
120 292
276 266
320 494
984 315
136 118
300 295
280 289

到目前为止我尝试过的

  1. =A11在 B1、=A21C1、 D1 中分配=A31,然后使用自动填充。但是,这会在 E1 中给出公式=D11,因此不起作用。

  2. 使用文本到列向导。这仅提供按分隔符拆分数据的功能,现在有基于行数拆分的方法。

我发现最相似的问题是这里其目标与我的相反(将多列合并为一列)。

解决了类似的问题,但他们按行复制数据。

这个问题在 R 中尝试解决同样的问题。

我知道可以使用像 pandas 这样的库来解决这个问题,但我认为在 Excel 中也应该有一种简单的方法可以解决这个问题。

答案1

有几种方法可以做到这一点。 p 先前的回答。菲多特使用了 OFFSET。OFFSET 函数有效,但被归类为易失性函数。这不是世界末日,只是意味着每次电子表格中的某些内容发生变化时,它都会重新计算。常规公式仅在影响它们的某些内容发生变化时才重新计算。作为一种非易失性替代方案,我建议使用下面的 INDEX 函数。将其向下复制 10 行,然后向右复制到您需要的位置。

=INDEX($A:$A,(COLUMN(A1)-1)*10+ROW(A1))

答案2

假设 324 位于 A1 中,将其放入 B1 中:

=OFFSET($A$1,(COLUMN()-1)*10+ROW()-1,0)

并将其向下和向右拖动。

想法:使用目标行和列来提供从第一个值开始的偏移量。

答案3

您的问题可以通过使用一些辅助值来解决:

在此处输入图片描述

怎么运行的:

  • 我假设你的数据在范围内A2:A41
  • 写入、写入 &写入。0D110E120F1

注意:

  • D1E1&F1是辅助细胞。

  • 30如果您需要复制更多行,则&应该在&40中赋值。G1H1

  • 将此公式写入D2& 向下填充然后向右填充。

    =IF(ROW(D2)>11,"",INDEX($A:$A,COLUMN($A$1)+ROW($A10)+D$1))

  • 根据需要调整公式中的单元格引用。

相关内容