如何一次删除列的几个单元格中的公式的一部分?

时间:2017-07-01 17:29:53

标签: google-sheets

我在Google电子表格的B栏的单元格中有以下公式:

              Column B
=if(A2 = "",,HYPERLINK("URL1","Label"))
=if(A3 = "",,HYPERLINK("URL2","Label"))
=if(A4 = "",,HYPERLINK("URL3","Label"))
=if(A5 = "",,HYPERLINK("URL4","Label"))
=if(A6 = "",,HYPERLINK("URL5","Label"))
and so on...

我只想 = HYPERLINK("网址","标签")公式的一部分保留在所有单元格中,并且部分依赖于被删除。该列约为。 1000行长。

请注意,虽然所有单元格中使用的公式相同,但单元格引用(A2,A3等)和URL(URL1,URL2等)在每个单元格中都是唯一的,如上所示。

我的最终目标是减少电子表格整体计算的负担,使其运行速度比现在快一些。

我已尝试阅读并应用REGEXMATCH和REGEXREPLACE但未能使它们正常工作。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

如果您想查看运行时发生的情况,可以删除评论。我根据提问者的新信息修改了这个正则表达式。

   function searchandreplace() {
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var sht=ss.getActiveSheet();
  var rng=sht.getRange('B:B');
  var formulas=rng.getFormulas();
  var s='';
  for(var i=0;i<formulas.length;i++)
  {
    s+='<br />' + formulas[i][0];
    formulas[i][0]=String(formulas[i][0]).replace(/^.*?(HYPERLINK\(".+","Label"\))\)$/,'$1');
    s+='<br />' + formulas[i][0]; 
  }
  rng.setFormulas(formulas);
  var html=HtmlService.createHtmlOutput(s);
  SpreadsheetApp.getUi().showModelessDialog(html, 'Formulas');  
}