【问题标题】:Use CONCATENATE to create a hyperlink to a cell in a different sheet [duplicate]使用 CONCATENATE 创建指向不同工作表中单元格的超链接 [重复]
【发布时间】:2021-12-31 08:56:11
【问题描述】:

我有一个包含许多工作表的工作簿。我想创建一种直接链接到不同工作表的词汇表。 在 col A 中有一个不同工作表名称的列表(例如 Jan、Feb、Mar)。 在 col B 中,我想直接链接到相应工作表中的单元格 A1(例如到 Jan!A1、到 Feb!A1 等。

我可以使用 INDIRECT+CONCATENATE 来获取目标单元格 (A1) 的值。例如,=INDIRECT(A2&"!A1") 将带来 Jan!A1 的值(其中单元格 A2 包含工作表名称:Jan)。

我不能做的是让它成为一个链接,点击后会带我到 Jan!A1

为了方便起见,我添加了一个示例: https://docs.google.com/spreadsheets/d/1z_UuA62ghUejFwGWKpT_smMhKM4QAVMgZrKotim8WHE/edit#gid=0 在工作表“主要”Col A 中是工作表名称。 Col B 是我想显示超链接的地方。 Col C 显示了值(这并不重要,因为我在我的问题中引用了它)

【问题讨论】:

    标签: google-sheets hyperlink scripting range google-query-language


    【解决方案1】:

    你需要HYPERLINK#gid=

    每张工作表都有唯一的 gid,您可以在 URL 中找到。那么你可以这样做:

    =HYPERLINK("#gid=1062970060&range=A1"; "Sheet2")
    

    =ARRAYFORMULA(IF(B:B="",,HYPERLINK("#gid=1734824104&range=B"&ROW(B:B), B:B)))
    

    在这里可以找到gid号:


    您可以使用脚本自动执行此过程:

    function SHEETLIST() {
    try {
      var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets()
      var out = new Array( sheets.length+1 ) ;
      out[0] = [ "NAME" , "#GID" ];
      for (var i = 1 ; i < sheets.length+1 ; i++ ) out[i] = 
      [sheets[i-1].getName() , sheets[i-1].getSheetId() ];
      return out
    }
    catch( err ) {
      return "#ERROR!" }}
    

    将工作表名称转换为活动超链接:

    =ARRAYFORMULA(HYPERLINK("#gid="&
     QUERY(INDEX(SHEETLIST();;2); "offset 1"); 
     QUERY(INDEX(SHEETLIST();;1); "offset 1")))
    

    如果你想将其绑定到手动输入,你可以使用VLOOKUP like

    =ARRAYFORMULA(IFNA(VLOOKUP(A1:A5, HYPERLINK("#gid="&
     QUERY(INDEX(SHEETLIST();;2); "offset 1"); 
     QUERY(INDEX(SHEETLIST();;1); "offset 1")); 1; 0)))
    

    无脚本:

    【讨论】:

    • 谢谢,但是这个方法是手动的。我已经有许多工作表名称的列表,我想使用工作表名称而不是为每个工作表带上 GID。
    • @Tom 回答已更新
    • 再次感谢,但我不想用脚本来解决它。我试图了解使用工作表名称的公式是否可行。
    • @Tom 不可能,除非您手动收集所有工作表的所有 gid。没有读取 gid 的公式,这就是为什么你需要一个脚本来自动提取它们
    • @Tom 看看你的工作表
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2015-10-18
    • 2023-03-05
    • 1970-01-01
    • 2023-02-05
    • 2019-07-25
    相关资源
    最近更新 更多