当前位置: 首页 > 知识库问答 >
问题:

如何使用公式在Google工作表中插入指向单元格的超链接?[副本]

蒙弘图
2023-03-14

我正在尝试以一种可以使用“=MATCH()”函数复制的方式插入一个指向单元格的超链接。但是,如果不使用GID,我似乎无法找到在Google工作表中链接单元格的方法。

当我右键单击并“获取到此单元格的链接”时,我最终会得到一个带有“#gid=1933185132”的网址。然而,这没有结构,我不能用它来匹配公式,并像我通常在Excel中那样自动填充它。

https://docs.google.com/spreadsheets/d/sheetkey/edit#gid=1933185132

然而,如果这是有一个单元格引用像这样

https://docs.google.com/spreadsheets/d/sheetkey/edit#Sheet1!C12

我可以很容易地为MATCH函数重新创建它。

问:有没有一种替代的方法来链接单元格,就像我上面显示的那样?如果没有,我可以使用一个公式来提取"Sheet1!C12"?

我已经搜索了谷歌论坛和堆栈溢出到最好的程度,我看到的唯一的解决方案似乎是使用带有“var表”的脚本,这是我无法理解的编码知识。

这应该是一件非常简单的事情,但我找不到出路。对这个问题的任何见解都是值得赞赏的。非常感谢。

共有3个答案

何德寿
2023-03-14

由于到下面部分的URL将是一个常量,因此可以首先在单元格中定义它。

https://docs.google.com/spreadsheets/d/sheetkey/edit#

我相信您已经在一列中定义了gid=1933185132部分(假设它是a列)。因此,要获得工作表的实际URL,只需将这两个链接起来。因此,在B列中,你必须写出以下公式。

=HYPERLINK(CONCAT(A1,A2),A2)
孙项禹
2023-03-14

GID不要求是以https开头的有效URL。。。

您所需要的只是像这样的超链接:

=HYPERLINK("#gid=1933185132&range=C12", "sheet name")

如果您想超链接所有工作表,可以这样做:

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")))
权兴为
2023-03-14

您可以创建如下链接:

=hyperlink(#gid=1166414895range=A1,“链接到A1”)

每个选项卡都有一个唯一的键,称为gid,您可以在以下链接中找到它:

  • #gid永远不会改变。选项卡名称可能会更改,公式将中断,使用gid更安全

我找不到关于此主题的留档,也找不到使用制表符名称的方法。

  1. 在文档中定义命名范围

根据您的浏览器,您的剪贴板现在将包含完整的URL:

https://docs.google.com/spreadsheets/d/xxxxxxxxxx/edit#rangeid=nnnnnnnnnn

或者剪贴板将只包含范围ID片段:

#rangeid=nnnnnnnnnn

如果只有片段,则需要将其附加到文档的URL,以创建该范围的完整URL。

可能还有其他更简单的方法来获取范围ID,但我还没有注意到。参见相关问题,类似问题的答案。

PS:复制命名范围的URL后,您可以按照上述步骤删除创建的链接。

在公式中使用。

简单范围:

=超链接(getLinkByRange(“Sheet1”、“A1”),“链接到A1”)

命名范围:

=超链接(getLinkByNamedRange(“NamedRange”),“链接到命名范围”)

将代码插入脚本编辑器(工具

function getLinkByRange(sheetName, rangeA1, fileId)
{
  // file + sheet
  var file = getDafaultFile_(fileId);  
  var sheet = file.getSheetByName(sheetName);
  
  return getCombinedLink_(rangeA1, sheet.getSheetId(), fileId, file)    
}

function getLinkByNamedRange(name, fileId)
{
  // file + range + sheet
  var file = getDafaultFile_(fileId);    
  var range = file.getRangeByName(name);  
  var sheet = range.getSheet();
  
  return getCombinedLink_(range.getA1Notation(), sheet.getSheetId(), fileId, file)
      
}


function getDafaultFile_(fileId)
{
  // get file
  var file;
  if (fileId) { file = SpreadsheetApp.openById(fileId); }
  else file = SpreadsheetApp.getActive();      
  return file;      
}

function getCombinedLink_(rangeA1, sheetId, fileId, file)
{
  var externalPart = '';
  if (fileId) { externalPart = file.getUrl(); }    
  return externalPart + '#gid=' + sheetId + 'range=' + rangeA1;   
}
 类似资料:
  • 答案是接下来: 1) 谷歌表单单元格“A11”中有公式,例如“=F11 C11”; 2)我在https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/batchUpdate或https://developers.google.com/sheets/api/reference/rest/v4/spre

  • 在当前版本的Google Sheet中,要在单元格中插入超链接,可以执行以下操作 在新版Google Sheets中,超链接插入是不同的,您可以这样做。 但是,我有一个问题,在电子表格中插入的值不是我所期望的。在这张显示插入链接的图像中,在=HYPERLINK之前插入了一个“插入”——我不知道这是从哪里来的。有什么想法吗?

  • 我使用脚本将数据从MySQL数据库导入到工作表中。在导入过程中,其他具有重公式的工作表(vlookup、sumifs、filter)会不断重新计算,因此需要花费很长时间。我想在MySQL数据完全导入后,通过脚本插入公式。 为了简化此过程,我想将工作表上的所有公式(这是一个很长的工作表)提取到一个文件中,并将提取的数据格式化为以下方式:示例:从工作表“摘要”中提取数据: 循环检查工作表中的每个单元格

  • 是否有任何方法,使用脚本或其他方式,来评估谷歌电子表格中的连接公式? 我为Google Finance函数创建了一个连接公式,用于获取每日汇率。这是因为我的日期和货币不断变化;而不是“usdeur”,我有时对获取“usdinr”或“euraud”感兴趣。通过使用连接和一些基本脚本,我能够将下面的公式作为文本粘贴到单元格中。所需的只是执行以下字符串的方法。 据我所知,工作表不像Excel那样具有“E

  • 本文向大家介绍如何使用Java在excel单元格中设置超链接,包括了如何使用Java在excel单元格中设置超链接的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了如何使用Java在excel单元格中设置超链接,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 (一)问题引入   有时候我们在导入数据到excel中时可能要给某个文件或图片设

  • 这并不是重复的,尽管这个问题在2011年已经在这个论坛上提出过:从Excel文档中获取超链接URL,2013年用Python从Excel(.xlsx)中提取超链接,2014年用XLRD从Python中的Excel表超链接中获取URL;还是没有答案。在深入研究了xlrd模块之后,data_sheet.hyperlink_map.get((row,col))项似乎会跳转,因为在用Python从Exce