我在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但未能使它们正常工作。
非常感谢你的帮助!
答案 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');
}