如何在 Excel 中根据 A 列中的数据创建新列

如何在 Excel 中根据 A 列中的数据创建新列

我有一张 Excel 表,其中所有数据都在 A 列中。我想从每 9 个单元格中创建单独的列

将单元格移动到列

VBA 是实现这一目标的最佳方法吗?

答案1

我建议你尝试一下公式。

例如=IF(OFFSET($A$1,MOD(COLUMN(A1)-1,9)+(ROW(A1)-1)*9,)=0,"",OFFSET($A$1,MOD(COLUMN(A1)-1,9)+(ROW(A1)-1)*9,))

在此处输入图片描述

答案2

您可以使用该=INDEX()功能重新组织您的数据。

例如,如果您的输入位于A以单元格开始的工作表列中A1,并且您希望输出的左上角单元格位于单元格中C10,则在单元格中使用以下公式C10

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

如果您希望输出的尺寸不是 9 列宽,请用您选择的值替换公式中的 9。同样,如果输入不是从第 1 行开始

然后可以将此公式复制到输出区域的其余部分。

如果您有适用于 Microsoft 365 或 Excel 2021 的 Excel,那么您可以使用该函数来合并 @Emily 建议的替换类型,而无需繁琐的重复=LET()。例如:

=LET(cell,INDEX($A:$A,9*(ROW()-ROW($C$10))+1+COLUMN()-COLUMN($C$10)),IF(cell=0,"",cell))

或者

=LET(cell,INDEX($A:$A,9*(ROW()-ROW($C$10))+1+COLUMN()-COLUMN($C$10)),IF(ISBLANK(cell),"",cell))

相关内容