如何使用HYPERLINK将url文本移出字段

时间:2015-02-12 09:54:25

标签: google-sheets

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

=HYPERLINK("http://example.com", "Link")

我想获得额外的列,其中只有第一列中的url(作为文本),即在此示例中:

http://example.com

是否有允许从HYPERLINK中提取网址的功能?我还在考虑从第一列获取公式文本并在最后一列中使用SPLIT / SUBSTITUTE剪切它,但我不确定是否可以将一个字段代码放入另一个字段。

5 个答案:

答案 0 :(得分:1)

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

以下是它的工作原理:

  1. 打开Goog​​le表格文档
  2. 转到工具>脚本编辑器...
    将打开一个新的浏览器窗口或标签
  3. 突出显示并删除Code.gs
  4. 中的所有代码
  5. Code.gs中的所有内容替换为this Pastebin中取自this Google Docs Help Forum topic
  6. 的内容
  7. 转到文件>保存更改。保存
  8. 点击“运行”>运行此新脚本的OnOpen
  9. 出现提示时,授权脚本
  10. 返回您的Google表格文档
    您将看到在帮助后创建了一个名为“Extract”的新菜单项
  11. 选择电子表格中包含=HYPERLINK函数
  12. 的单元格,行或列
  13. 点击Extract -> Replace formulas with Text strings启动脚本
  14. 宏将以递归方式提取超链接函数的URL,只留下值。

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

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

答案 1 :(得分:1)

您可以使用Apps脚本创建自定义功能。试试这个:

  1. 打开Goog​​le表格。
  2. 在菜单栏中,打开工具>脚本编辑器......
  3. 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");
      }
    
    }
    
  4. 这会创建一个自定义函数。在您的Google表格中,您可以像使用任何其他功能一样使用此功能;但是,有一点需要注意,那就是你必须把单元格放在引号中,例如:

    =EXTRACT_URL("A1")
    

    为了使引号不那么麻烦,上面的脚本也支持范围:

    =EXTRACT_URL("A1:B10")
    

    希望这有帮助!

答案 2 :(得分:0)

一种方法是复制包含公式的列(假设您要保留它们)并删除“多余”。可以使用Edit>实现删除。查找和替换...在每种情况下使用替换为左侧空白:

左侧部分:

查找 =HYPERLINK("并检查还在公式中搜索

(如果您想断开链接,请将'放入*替换为*。)

右边的部分:

查找 ".+并检查使用正则表达式搜索还在公式中搜索。

答案 3 :(得分:0)

尝试以下公式

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

示例

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

结果是

A2=http://example.com

答案 4 :(得分:0)

您可以使用FORMULATEXT获取超链接公式单元格的文本,然后使用正则表达式提取URL。

=REGEXEXTRACT(FORMULATEXT(A1), "^=HYPERLINK(""([^""]+)")