如何水平复制公式可变次数? - 谷歌表格
How to copy formula horizontally a variable number of times? - GoogleSheets
我有一个如下所示的数据集:
V 到 X 列(灰色)由表单填充。 X 列是我们收到付款的第一个日期,V 列是我们将收到付款的月数。
我想根据收到的付款金额动态计算每个下一个付款日期的价值。例如,在上图中的单元格 Y2 中,我有一个公式 =X2+30,我将它向右拖动,直到它到达单元格 AD2。 V 列是动态的,但不会超过 10,我总是想在 V2 中的每列中增加 30 天的次数。上面的例子就是。我在 AF2 或 AG2 中没有数据,因为不需要。但如果值为 9,那么它会自动将值 =AE2+30 添加到该单元格。
有没有不用脚本的方法?
我还想在 AH2 列中重复最后的日期。我试图通过输入以下内容来实现这一点:
但是我得到的数字太大了。我该如何纠正?
将其放入 Y2 并复制到 AG2 并向下复制数据的长度:
=IF(COLUMN(A:A)<$V2,X2+30,"")
然后在AH2
=X2+(30*(V2-1))
在 Y2 中粘贴:
=ARRAYFORMULA(TO_DATE(IF(LEN(V2:V),
{IF(COLUMN(A:A)<$V2:V, EDATE(X2:X, 1), ),
IF(COLUMN(B:B)<$V2:V, EDATE(X2:X, 2), ),
IF(COLUMN(C:C)<$V2:V, EDATE(X2:X, 3), ),
IF(COLUMN(D:D)<$V2:V, EDATE(X2:X, 4), ),
IF(COLUMN(E:E)<$V2:V, EDATE(X2:X, 5), ),
IF(COLUMN(F:F)<$V2:V, EDATE(X2:X, 6), ),
IF(COLUMN(G:G)<$V2:V, EDATE(X2:X, 7), ),
IF(COLUMN(H:H)<$V2:V, EDATE(X2:X, 8), ),
IF(COLUMN(I:I)<$V2:V, EDATE(X2:X, 9), )}, )))
在 AH2 中粘贴:
=ARRAYFORMULA(TO_DATE(
IF(AG2:AG<>"", AG2:AG,
IF(AF2:AF<>"", AF2:AF,
IF(AE2:AE<>"", AE2:AE,
IF(AD2:AD<>"", AD2:AD,
IF(AC2:AC<>"", AC2:AC,
IF(AB2:AB<>"", AB2:AB,
IF(AA2:AA<>"", AA2:AA,
IF(Z2:Z<>"", Z2:Z,
IF(Y2:Y<>"", Y2:Y, )))))))))))
如果你还想要硬静态30天那么:
=ARRAYFORMULA(TO_DATE(IF(LEN(V2:V),
{IF(COLUMN(A:A)<$V2:V, X2:X+30, ),
IF(COLUMN(B:B)<$V2:V, X2:X+60, ),
IF(COLUMN(C:C)<$V2:V, X2:X+90, ),
IF(COLUMN(D:D)<$V2:V, X2:X+120, ),
IF(COLUMN(E:E)<$V2:V, X2:X+150, ),
IF(COLUMN(F:F)<$V2:V, X2:X+180, ),
IF(COLUMN(G:G)<$V2:V, X2:X+210, ),
IF(COLUMN(H:H)<$V2:V, X2:X+240, ),
IF(COLUMN(I:I)<$V2:V, X2:X+270, )}, )))
或
=ArrayFormula(if(V2:V="","",if(column(Y:AG)-column(W:W)>V2:V,"",X2:X+(column(Y:AG)-column(X:X))*30)))
和
=ArrayFormula(if(V2:V="","",X2:X+(V2:V-1)*30))
在 Google 张中。
我有一个如下所示的数据集:
V 到 X 列(灰色)由表单填充。 X 列是我们收到付款的第一个日期,V 列是我们将收到付款的月数。
我想根据收到的付款金额动态计算每个下一个付款日期的价值。例如,在上图中的单元格 Y2 中,我有一个公式 =X2+30,我将它向右拖动,直到它到达单元格 AD2。 V 列是动态的,但不会超过 10,我总是想在 V2 中的每列中增加 30 天的次数。上面的例子就是。我在 AF2 或 AG2 中没有数据,因为不需要。但如果值为 9,那么它会自动将值 =AE2+30 添加到该单元格。
有没有不用脚本的方法?
我还想在 AH2 列中重复最后的日期。我试图通过输入以下内容来实现这一点:
但是我得到的数字太大了。我该如何纠正?
将其放入 Y2 并复制到 AG2 并向下复制数据的长度:
=IF(COLUMN(A:A)<$V2,X2+30,"")
然后在AH2
=X2+(30*(V2-1))
在 Y2 中粘贴:
=ARRAYFORMULA(TO_DATE(IF(LEN(V2:V),
{IF(COLUMN(A:A)<$V2:V, EDATE(X2:X, 1), ),
IF(COLUMN(B:B)<$V2:V, EDATE(X2:X, 2), ),
IF(COLUMN(C:C)<$V2:V, EDATE(X2:X, 3), ),
IF(COLUMN(D:D)<$V2:V, EDATE(X2:X, 4), ),
IF(COLUMN(E:E)<$V2:V, EDATE(X2:X, 5), ),
IF(COLUMN(F:F)<$V2:V, EDATE(X2:X, 6), ),
IF(COLUMN(G:G)<$V2:V, EDATE(X2:X, 7), ),
IF(COLUMN(H:H)<$V2:V, EDATE(X2:X, 8), ),
IF(COLUMN(I:I)<$V2:V, EDATE(X2:X, 9), )}, )))
在 AH2 中粘贴:
=ARRAYFORMULA(TO_DATE(
IF(AG2:AG<>"", AG2:AG,
IF(AF2:AF<>"", AF2:AF,
IF(AE2:AE<>"", AE2:AE,
IF(AD2:AD<>"", AD2:AD,
IF(AC2:AC<>"", AC2:AC,
IF(AB2:AB<>"", AB2:AB,
IF(AA2:AA<>"", AA2:AA,
IF(Z2:Z<>"", Z2:Z,
IF(Y2:Y<>"", Y2:Y, )))))))))))
如果你还想要硬静态30天那么:
=ARRAYFORMULA(TO_DATE(IF(LEN(V2:V),
{IF(COLUMN(A:A)<$V2:V, X2:X+30, ),
IF(COLUMN(B:B)<$V2:V, X2:X+60, ),
IF(COLUMN(C:C)<$V2:V, X2:X+90, ),
IF(COLUMN(D:D)<$V2:V, X2:X+120, ),
IF(COLUMN(E:E)<$V2:V, X2:X+150, ),
IF(COLUMN(F:F)<$V2:V, X2:X+180, ),
IF(COLUMN(G:G)<$V2:V, X2:X+210, ),
IF(COLUMN(H:H)<$V2:V, X2:X+240, ),
IF(COLUMN(I:I)<$V2:V, X2:X+270, )}, )))
或
=ArrayFormula(if(V2:V="","",if(column(Y:AG)-column(W:W)>V2:V,"",X2:X+(column(Y:AG)-column(X:X))*30)))
和
=ArrayFormula(if(V2:V="","",X2:X+(V2:V-1)*30))
在 Google 张中。