如何从 Google 表格中包含带有数值的链接文本的单元格列中提取网址?

How do you extract urls from a column of cells containing linked text with numeric values in Google Sheets?

Edit/Update:这个问题对于您尝试从包含带有链接 URL 的 numeric 值的单元格中提取 urls 的特定用例很有帮助.

我有一个电子表格,其中有一列单元格是从包含链接 urls 的文本的网站复制的(即 urls 未存储在超链接公式中)。这里有一个sample spreadsheet。我想将链接文本(A 列)中的 url 提取到电子表格的新列中。

去年(2020)我发现 的评论中分享的自定义函数 javascript 代码运行良好。然而,当我昨天用一个新的电子表格尝试这个时,这段代码不再有效——而不是返回 url,而是 returns 什么都没有。没有错误消息,它只是 returns 一个空值。

我尝试过的其他事情: 在某些情况下,我能够通过使用其他 javascript 函数成功检索到 url:

function GETLINK(input) {
  return SpreadsheetApp.getActiveSheet().getRange(input).getRichTextValue().getLinkUrl();
}

但它只适用于文本未格式化为数字的单元格,并且需要将输入作为固定单元格引用输入,方法是将其放在引号中,即 =getlink("A2") 或拼写地址,即 =getlink(ADDRESS(ROW(A2), COLUMN(A2)))

我想找出原始代码中有什么问题,不需要这些额外的解决方法。

解释:

documentation 开始,如果单元格的值未格式化为文本,getRichTextValue() 将 return null。参考题上大部分代码都是用这个方法,所以调用getLinkUrl()就报错return。因此,唯一的解决方法是通过在单元格值前放置单引号来强制设置文本格式:

这也适用于 linkURL()