2017-07-01 24 views
0

我具有以下在列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(「URLN」,「標籤」)的式部分留在那裏中的所有細胞和休息部分被刪除。該欄目是約。 1,000行長。

請注意,雖然所有單元格中使用的公式是相同的,但單元格引用(A2,A3等)和URL(URL1,URL2等)在每個單元格中都是唯一的,如上所述。

我的最終目標是減輕電子表格的整體計算負擔,使其運行速度比現在快一點。

我曾嘗試閱讀並應用REGEXMATCH和REGEXREPLACE,但未能使其工作。

非常感謝您的幫助!

+0

有沒有任何證據(或有理由認爲)如果你達到這樣的跑步速度會有什麼不同? – pnuts

+0

沒有證據表明,但是我的觀察表明,在電子表格中使用公式和函數的次數越多,電子表格越慢。所以,我認爲其反過來也應該是真實的 - 公式的數量和/或複雜程度越低,電子表格將恢復到其原始速度的速度越快。我知道我的假設可能完全錯誤。 – viv227295

回答

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'); 
} 
+0

嗨,庫珀!感謝您的答覆!您的腳本正在刪除列A中的內容,而我想要的是 - 列B中要刪除的公式的一部分。 – viv227295

+0

好的只是不得不將列索引從0更改爲1. – Cooper

+0

我試過了,但現在它只是複製B列中的任何內容並將其放入列A中。以下是電子表格與某些數據的鏈接:https:// docs.google.com/spreadsheets/d/1oOB4__4ycIpG4ckdHTIhIjp3e_VkyI2R6MjW2VDK2Tc/edit#gid=0 – viv227295

相關問題