Google sheets 如何从包含超链接的字段中获取url文本

Google sheets 如何从包含超链接的字段中获取url文本,google-sheets,Google Sheets,我有一个包含超链接公式的列,例如: =HYPERLINK("http://example.com", "Link") 我希望获得附加列,其中仅显示来自第一列的URL(作为文本),即在本例中: http://example.com 是否有允许从超链接提取url的功能?我还考虑从第一列中获取公式文本,并在最后一列中使用SPLIT/SUBSTITUTE进行剪切,但我不确定是否可以将一个字段代码转换为另一个字段 一种方法是复制包含公式的列(假设您希望保留它们),并删除“多余的”。可以通过编辑>查找和

我有一个包含超链接公式的列,例如:

=HYPERLINK("http://example.com", "Link")
我希望获得附加列,其中仅显示来自第一列的URL(作为文本),即在本例中:

http://example.com

是否有允许从超链接提取url的功能?我还考虑从第一列中获取公式文本,并在最后一列中使用SPLIT/SUBSTITUTE进行剪切,但我不确定是否可以将一个字段代码转换为另一个字段

一种方法是复制包含公式的列(假设您希望保留它们),并删除“多余的”。可以通过编辑>查找和替换。。。在每种情况下,替换为左空白:

左边的部分:

查找
=HYPERLINK(
),并选中“在公式内搜索”

(如果要断开链接,请将
放入*替换为*)

右边的部分:

查找“
”+
并选中“使用正则表达式搜索”和“在公式内搜索”。

您可以使用宏、菜单和自定义函数的组合,从单元格的公式中提取超链接的值

下面是它的工作原理:

  • 打开GoogleSheets文档
  • 转到工具>脚本编辑器…
    将打开一个新的浏览器窗口或选项卡
  • 突出显示并删除
    code.gs中的所有代码
  • code.gs
    中的所有内容替换为
  • 通过转到“文件>保存”保存更改
  • 通过单击Run>onOpen运行此新脚本
  • 出现提示时,授权脚本
  • 返回您的Google Sheets文档
    您将看到在“帮助”之后创建了一个名为“提取”的新菜单项
  • 选择电子表格中包含
    =HYPERLINK
    函数的单元格、行或列
  • 单击
    Extract->Replace formulas with Text string
    启动脚本
  • 宏将递归地提取超链接函数的URL,只留下值

    注意:在进行任何更改之前,请始终备份您的工作


    如果您希望保留原始单元格的内容或格式,我建议您在重复的电子表格上执行此任务,或者至少在原始单元格的副本上执行此任务,以防出现任何问题。

    您可以通过使用应用程序脚本创建自定义函数来完成此任务。请尝试以下操作:

  • 打开你的谷歌表
  • 在菜单栏中,打开工具>脚本编辑器…
  • Code.gs中,粘贴以下内容并保存:

    function EXTRACT_URL(input) {
    
      var range = SpreadsheetApp.getActiveSheet().getRange(input);
      var re = /^.+?\(\"(.+?)\",.+?$/;
      if (input.indexOf(':') != -1) {
        var formulas = range.getFormulas();
        for (var i in formulas) {
          for (var j in formulas[i]) {
            formulas[i][j] = formulas[i][j].replace(re, "$1");
          }
        }
        return formulas;
      } else {
        return range.getFormula().replace(re, "$1");
      }
    
    }
    
  • 这将创建一个自定义函数。在您的Google工作表中,您可以像使用任何其他函数一样使用此函数;但是,有一个警告,即您必须将单元格置于引号中,例如:

    =EXTRACT_URL("A1")
    
    为了减少引号的麻烦,上述脚本还支持范围:

    =EXTRACT_URL("A1:B10")
    
    希望这有帮助!

    试试这个公式

    A2=index(SPLIT(SUBSTITUTE(FORMULATEXT(A1),"=HYPERLINK(""",""),""","""),1,1)
    
    范例

    A1=HYPERLINK("http://example.com", "Link")
    
    结果是

    A2=http://example.com
    

    我的google sheets版本在“查找和替换”中没有“也在公式中搜索”选项。尝试用超链接替换列中的文本会导致“注意:公式单元格中的文本无法替换”。无法使此功能正常工作。文本在我的案例中有超链接,这很好。谢谢。