在 Google 表格中复制公式 - 是否可以更改单元格引用?

Copying formulas in Google Sheets - Is it possible to alter cell references?

我有几个关于在 Google 工作表中复制公式的问题要问。这些表格适用于在我们的潜水船上进行一日游和课程的客户的预订系统。

我有这个带有确切日期的公式,我需要将其复制到 B 列的每 26 个单元格中...

问题一,涉及到下面的公式...

=FILTER(MERQ!A:J, MERQ!D:D=date(2016,8,8))

Screenshot for question 1

有什么方法可以复制这个公式,使日期每次增加一天,同时公式不会出现在下面的单元格中,而是每次出现在第 26 行?例如,在 C4、C30、C56 等中,我最初必须为五艘不同的船执行此操作一年半,接近 3,000 次。我无法面对单独更换每一个。

问题 2。与下面的公式有关,它将显示每艘船每天的可用性。

=MER!B3

这次我需要下面单元格中的公式,但是行引用每次都需要向下更改26行。例如我需要...

=MER!B3 在 C3 =MER!B29 在 C4 =MER!B55,在C5等等,

如果我尝试复制我得到的公式...

=MER!B3 在 C3 =MER!B4 在 C4 =MER!B5 在 C5 等等,

Screenshot for question 2

同样,我需要为 5 艘船做一年半的时间,所以这非常耗时,尽管我想我可能会问一个问题,答案是无法完成。

第二个问题更简单:将单元格引用构建为字符串并在 indirect 中使用它。

=indirect("MER!B" & (3 + 26*(ROW()-3)))

该公式使用当前单元格的行来计算您引用的行。


第一个问题,关于在每 26 个单元格中放置一个公式,建议 (a) 您的数据组织不是最好的; (b) 你需要一个 script 来实现它。这是在单元格 C4、C30 等中设置所需公式的脚本,每次将日期增加 1。这个设置了1000个单元格(变量k的上限)。

function setFormulas() {
  var sheet = SpreadsheetApp.getActiveSheet();
  for (var k = 0; k < 1000; k++) {
    sheet.getRange(4 + 26*k, 3).setFormula('=FILTER(MERQ!A:J, MERQ!D:D=date(2016,8,8)+' + k + ')');
  }
}