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

时间:2016-06-03 14:31:20

标签: google-sheets formula copy-paste

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

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

问题1.与下面的公式有关...

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

Screenshot for question 1

有没有办法可以复制这个公式,所以每次日期增加一天,同时公式不会进入下面的单元格,但每次下降第26行?例如在C4,C30,C56等中我最初需要为五艘不同的船做一年半,接近3000次。我不能单独改变每一个。

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

=MER!B3

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

C3中的

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

如果我尝试复制公式,我会......

C3中的

=MER!B3 C4中=MER!B4 C5中的=MER!B5等等,

Screenshot for question 2

同样,我需要为5艘船做一年半的时间,所以这是非常耗时的,尽管我想我可能会问一个问题,答案是什么,它可以& #39; t完成。

1 个答案:

答案 0 :(得分:0)

第二个问题更容易:将单元格引用构建为字符串并在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 + ')');
  }
}