![1 个长列拆分为多个列](https://linux22.com/image/1502005/1%20%E4%B8%AA%E9%95%BF%E5%88%97%E6%8B%86%E5%88%86%E4%B8%BA%E5%A4%9A%E4%B8%AA%E5%88%97.png)
我的 Excel 表中有一列很长。我想将该列拆分为多列。
每 10 个条目后应进行一次多列拆分。因此,如果我的原始列中总共有 80 个单元格,我希望将它们拆分为 8 列,每列有 10 个单元格。
我不太熟悉 VBA,所以我无法遵循提示,但我可能能够修改示例代码。
我的问题现在开始
我搜索了 SU 并找到了这个主题如何将 Excel 中的一列拆分为多列,每列 55 行
它有以下命令
=INDIRECT("Sheet1!R" & (COLUMN()-1)*55+MOD(ROW()-1,55)+1 & "C1", FALSE)
我将其修改为
=INDIRECT("Sheet1!R" & (COLUMN()-1)*10+MOD(ROW()-1,10)+1 & "C1", FALSE)
我知道 INDIRECT 的第一个参数应该是我想要从中选择值的源,所以它的格式应该是“Sheet1!RnnnCnnn”,其中“nnn”是行号和列号。
有人可以解释一下以下发生的事情吗:
"Sheet1!R" & (COLUMN()-1)*10+MOD(ROW()-1,10)+1 & "C1"
谢谢。
答案1
"Sheet1!R" & (COLUMN()-1)*10+MOD(ROW()-1,10)+1 & "C1"
Sheet1 从 sheet1 读取 R & (column()-1)*10 是引用,在初始列的哪一行读取它应该给你公式为 -1 乘以 10 加上行号除以 10 的余数的列如果你的公式在新工作表的第 1 行第 2 列,它应该是:
Sheet1!R(2-1)*10+Mod(1-1,10)+1 & C1
=Sheet1!R11C1
这意味着读取 sheet1 第 1 列第 11 行中的值,当你将公式向下拖动 10 次时,它将读取 sheet 1 的同一列中的以下值(下一行),每当你到达第 10 行时,你应该移动到下一列第一行并再次写入相同的公式。
请注意,C1 是固定的,因为您从第一列读取,但行是移动的,这就是为什么需要以除以 10 的方式计算它,所以整个公式都是计算从工作表 1 的第一列读取哪一行,并且它取决于公式所在的列。
Excel MOD 函数
返回两个给定数字相除后的余数。MOD 函数的语法为:
MOD( number, divisor )
其中参数如下:
number - 要除的数。divisor
- 除以 number 参数的值。