如何将公式水平复制可变次数? -GoogleSheets

时间:2019-02-06 20:00:25

标签: excel google-sheets google-sheets-formula

我有一个数据集,如下所示:

enter image description here

从表格填充V至X列(灰色)。 X列是我们收到付款的第一个日期,V列是我们将收到付款的月数。

我想根据收到的付款金额动态计算每个下一个付款日期的值。例如,在上图中的Y2单元格图像中,我有一个公式= X2 + 30,然后将其向右拖动直到到达AD2单元格。 V列是动态的,但不会超过10列,我一直希望每列增加30天,以达到V2的次数。上面的例子就是我在AF2或AG2中没有数据,因为不需要它。但是,如果值为9,则它将自动将= AE2 + 30值添加到该单元格。

有没有脚本的方法吗?

我也想在AH2栏中重复最后的日期。我尝试通过键入以下命令来实现这一点:

enter image description here

但是我得到的数字太大。我该如何纠正?

enter image description here

3 个答案:

答案 0 :(得分:1)

将其放置在Y2中,然后复制到AG2中并减小数据长度:

$("li[data-action='open']").click(function(evt) {
      $(this).attr({target: "_blank", href: row.Path})
    });

然后在AH2中

<ul class="custom-menu">
    <li data-action="open">Open Document</li>
    <li data-action="add" id="add-id">Set As Favorite</li>
    <li data-action="email">Email Document</a></li>
  </ul>

答案 1 :(得分: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, )}, )))

答案 2 :(得分:1)

=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表格中