复制多行的形式

复制多行的形式

我有一个包含 100 行的工作表(例如)。我创建了一个新工作表以覆盖 400 行。原始工作表如下所示:

name1, value1, name2, value2 
a, 1, b, 1
c, 1, d, 1

想要使新工作表看起来像:

name, value, joined
a, 1, ab
b, 1, ab
c, 1, cd
d, 1, cd

我在前两行使用的正式名称是:

=sheet1!A2, =sheet1!B2, =CONCATENATE(sheet1!A2,sheet1!C2)
=sheet1!C2, =sheet1!D2, =CONCATENATE(sheet1!A2,sheet1!C2)

现在我想将这些公式复制到所有其他行,但如果我选择这些公式并拖动,它只会关注最后一行的公式。我也尝试使用 VBA,但调试器毫无用处(说有错误,但没有指出行/实际错误)。

编辑 当我标记所有行并按住 ALT 拖动时,它保留了公式,但它添加+2到行而不是+1。越来越接近了。

编辑2

通过在每一行上放置断点来在 VBA 中进行排序,以识别有问题的行。 我所采用的 VBA 示例链接- 做的几乎一样。

答案1

IF, MOD, ROW, OFFSET, ROUNDDOWN我可以建议您使用函数以及CONCATENATE一直在使用的无数组公式解决方案。

通过将 Sheet 2 中的每连续两行映射到 Sheet1 中的一行,就可以实现这一点。

Rows 2,3 in Sheet2  -> Row 2 in Sheet1 (i = 0)
Rows 4,5 in Sheet2  -> Row 3 in Sheet1 (i = 1)
...

假设 Sheet1 中的第 5 行(使用 A5)

ROUNDDOWN((row(A5)-row(A$2))/2,0)

等于1. ( i=1)

您还需要知道 Sheet1 中的某一行是第一行还是第二行。这意味着如果我们从第 2 行开始计数,则确定某一行是偶数还是奇数。(即第 2 行 -> 1(奇数),第 3 行 -> 2(偶数),...)这可以通过使用MOD以下方法实现:

mod(row(A5)-row(A$2),2)

1由于(5-2=3是奇数),因此返回。

剩下的就是将IF前两列和CONCATENATE第三列的公式合并起来,以OFFSET得到 Sheet 1 中的内容。表格下方显示了三列的公式。您给出的值将更改为1,2,3,4(行主编号顺序),以检查是否捕获了正确的单元格。

多行

相关内容