Google Sheet,在脚本保留公式中使用删除

问题描述 投票:0回答:1

我有一个每10分钟运行一次的脚本,并在每次迭代时删除1行,以便在24小时图表中始终保持144行。它适用于没有公式的工作表,但其他3个工作表中的公式指的是第一个,当脚本运行时,它们没有达到我期望的效果。这是脚本:

  var tableData = ss.getSheetByName("TableData");
  var rowsToKeep = 149;   
  var totalRows = tableData.getLastRow();
  var numToDelete = totalRows - rowsToKeep;
      if (numToDelete > 0)
       {
         tableData.deleteRows(6, numToDelete);        
}

  var chartData1 = ss.getSheetByName("ChartData1-15");
  var rowsToKeep1 = 146;   
  var totalRows1 = chartData1.getLastRow();
  var numToDelete1 = totalRows1 - rowsToKeep1;
      if (numToDelete1 > 0)
       {
         chartData1.deleteRows(3, numToDelete1);          
}


  var chartData2 = ss.getSheetByName("ChartData10-20");
  var rowsToKeep2 = 146;   
  var totalRows2 = chartData2.getLastRow();
  var numToDelete2 = totalRows2 - rowsToKeep2;
      if (numToDelete2 > 0)
       {
         chartData2.deleteRows(3, numToDelete2);          
}


  var chartData3 = ss.getSheetByName("ChartData15-64");
  var rowsToKeep3 = 146;   
  var totalRows3 = chartData3.getLastRow();
  var numToDelete3 = totalRows1 - rowsToKeep3;
      if (numToDelete3 > 0)
       {
         chartData3.deleteRows(3, numToDelete3);         
}

行和列重复的公式是:

= IF(TableData!B $ 3> = $ A $ 1,TableData!B5,“”)= IF(TableData!B $ 3> = $ A $ 1,TableData!B6,“”)= IF(TableData!B $ 3> = $ 1美元,TableData!B7,“”)

等等...... - 对于chartData1

= IF(和(TableData!B $ 3> = $ B $ 1,TableData!B $ 3 <= $ A $ 1),TableData!B5,“”)= IF(和(TableData!B $ 3> = $ B $ 1,TableData! B $ 3 <= $ A $ 1),TableData!B6,“”)= IF(和(TableData!B $ 3> = $ B $ 1,TableData!B $ 3 <= $ A $ 1),TableData!B7,“”)

等等.... - 对于chartData2

= IF(TableData!B $ 3 <= $ A $ 1,TableData!B5,“”)= IF(TableData!B $ 3 <= $ A $ 1,TableData!B6,“”)= IF(TableData!B $ 3 <= $ 1美元,TableData!B7,“”)

等等... - 对于chartData3

会发生什么:在chartData1和3中,行变换= IF(TableData!B $ 3> = $ A $ 1,#REF!,“”),就像丢失TableData中的引用一样,因为它被删除了;在chartData2中,下面的行被转换为带有它们的向下公式。有办法解决我的问题吗?也许一个脚本可以从第一行(未删除的那个)再次重新复制公式?

谢谢

google-apps-script google-sheets
1个回答
0
投票

复制公式所引用的单元格中的值 - 向上,向下或任何适当的值。然后用新数据覆盖它们。这将使您不必更换公式,这将更加繁琐。

© www.soinside.com 2019 - 2024. All rights reserved.