如何在Google表格中的两个给定日期之间自动填充日期

时间:2019-01-29 09:32:14

标签: google-apps-script google-sheets

我一直在尝试实现this链接上解释的内容。

我在Google Sheet中有两个约会。一个开始日期和另一个结束日期(在单元格中)。现在,我要连续填充这两个日期之间的所有日期。上面的链接在一列中说明了操作方法,但没有说明在row中的操作方法。

我尝试了很多事情。我了解了R1C1符号,而最后一次尝试是:

=ArrayFormula(edate(B2,COLUMN(R[0]C[0]:indirect("R[0]C[" & datedif(B2,B3,"M") & "]", false))))

但是它返回解析错误。我的代码可能有什么问题?

2 个答案:

答案 0 :(得分:1)

我建议使用custom function替代:

enter image description here

其中DATES_BETWEEN的定义如下:

function DATES_BETWEEN(dateFrom, dateTo) {
  Logger.log(dateFrom);
  Logger.log(dateTo);
  var t = dateFrom.getTime(),
      tMax = dateTo.getTime(),
      values = [];
  while (t <= tMax) {
    values.push(new Date(t));
    t += 24000 * 3600;
  }
  return [values];
}

该函数应返回2d数组以适合单个行单元格。

答案 1 :(得分:0)

这样的聚会对您有用吗?

在您引用的链接中的公式中放置“转置”:

链接=ArrayFormula(TO_DATE(row(indirect("A"&A2):indirect("A"&B2))))上的原始公式

使用TRANSPOSE:=ArrayFormula(TRANSPOSE(TO_DATE(row(indirect("A"&A2):indirect("A"&B2))))