【发布时间】:2023-03-10 17:35:01
【问题描述】:
根据以下屏幕截图,我确实有以下列 Q88。
我想应用公式,如果它是 url,所以我希望它显示为 www.q88.com
我知道如何使用IFURL 验证网址,但如果它是网址,我不知道如何继续使用它,所以我想用文本标签超链接,因为我根本不熟悉谷歌表格。
【问题讨论】:
标签: javascript google-apps-script google-sheets google-sheets-formula
根据以下屏幕截图,我确实有以下列 Q88。
我想应用公式,如果它是 url,所以我希望它显示为 www.q88.com
我知道如何使用IFURL 验证网址,但如果它是网址,我不知道如何继续使用它,所以我想用文本标签超链接,因为我根本不熟悉谷歌表格。
【问题讨论】:
标签: javascript google-apps-script google-sheets google-sheets-formula
说明:
这是marikamitsos 答案的 Google Apps 脚本实现,所以如果这个答案适合您,请接受他的答案。
"Sheet1" 和H。解决方案 1 - 常规函数:
function myFunction() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheets()[0];
const rng = sh.getRange('H1:H'+sh.getLastRow());
const vals = rng.getValues().flat();
const fvals=vals.map(v=>v.match("//(.*)/")?[`=HYPERLINK("${v}","${v.match("//(.*)/")[1]}")`]:[v])
rng.clearContent();
rng.setValues(fvals);
}
解决方案 2 - onEdit 触发函数:
function onEdit(e){
const row = e.range.getRow();
const col = e.range.getColumn();
const as = e.source.getActiveSheet();
if(as.getName() == "Sheet1" && col == 8){
const v = e.value;
const fv = v.match("//(.*)/")?`=HYPERLINK("${v}","${v.match("//(.*)/")[1]}")`:v;
e.range.setValue(fv);
}
}
【讨论】:
https://www.example.com/id=123 转换为超链接https://www.example.com
setFormula。无论如何,如果您现在想要解决方案,我建议您尝试一下,使用 Google 脚本创建公式非常简单。如果您可以等待 5-7 小时,我将更新我的答案。 @αԋɱҽԃαмєяιcαη
请尝试
=ArrayFormula(IFERROR(REGEXEXTRACT(O1:O,"//(.*)/"),O1:O))
(根据您的需要调整范围)
使用的功能:
【讨论】:
www.q88.com 在同一列中,您将需要一个脚本。如果您可以使用不同的列,请在旁边的新列中使用我的公式。