Excel 每隔三行增加字母

Excel 每隔三行增加字母

我想从 Sheet1 到 Sheet2 获取大量数据,但当我向右拉命令时,它应该只会每三行将“C”增加到“D”。因为我有 3 个命令要向右拉,所有命令都应该只增加 1,而不是 3。

A1 如下所示:

=WENN(Sheet1!C3>0;Sheet1!C$2;"")

B1 是这样的:

=WENN(Sheet1!C3>0;Sheet1!$A3;"")

C1 喜欢这个:

=WENN(Sheet1!C3>0;Sheet1!C3;"")

当我将其拉到右侧时,它们会变成这样:

=WENN(Sheet1!F3>0;Sheet1!F$2;"")
=WENN(Sheet1!F3>0;Sheet1!$A3;"")
=WENN(Sheet1!F3>0;Sheet1!F3;"")

但我想要:

=WENN(Sheet1!D3>0;Sheet1!D$2;"")
=WENN(Sheet1!D3>0;Sheet1!$A3;"")
=WENN(Sheet1!D3>0;Sheet1!D3;"")

希望您明白我的意思。有什么办法吗?

答案1

您可以使用有用的OFFSET函数来控制单元格向右移动的程度。

由于您想要每 3 列(在 Sheet2 中)移动 1 列(在 Sheet1 中),因此可以使用以下函数:

=ROUNDUP(COLUMN()/3,0)-1

这基本上会使用列号,将其除以 3 并四舍五入。然后,我们删除 1,因为我们不想移动前 3 列。如果将其向右拉,您将得到以下序列:0 0 0 1 1 1 2 2 2 3 3 3...

现在您知道需要移动单元格多少C3,您可以使用OFFSET函数获取正确的数据。以下是您应该使用的公式Sheet2

A1

=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,OFFSET(Sheet1!$C$2,0,ROUNDUP(COLUMN()/3,0)-1),"")

B1

=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,Sheet1!$A3,"")

C1

=IF(OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1)>0,OFFSET(Sheet1!$C3,0,ROUNDUP(COLUMN()/3,0)-1),"")

预期结果:

在此处输入图片描述


您似乎在使用德语版 Excel。以下是翻译后的公式:

=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;BEREICH.VERSCHIEBEN(Sheet1!$C$2;0;AUFRUNDEN(SPALTE()/3;0)-1);"")
=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;Sheet1!$A3;"")
=WENN(BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1)>0;BEREICH.VERSCHIEBEN(Sheet1!$C3;0;AUFRUNDEN(SPALTE()/3;0)-1);"")

相关内容