我一直在浏览Internet上浩瀚的知识,以获取所需的东西,但无济于事。
上下文
在一个Google表格文件中,我有一张主表和其他各种以人的姓氏命名的表。
在主表中,我创建了一个单元格,可以在其中键入任何人的名字。我想查找多个人的工作表,因此我的搜索是动态的。无论如何,我们将此单元格称为SEARCH CELL。
在SEARCH CELL旁边,我有另一个单元格,我想在其中添加一个超链接到另一个带有在SEARCH CELL中输入的姓氏的工作表。我们将此具有超链接的单元格称为HYPERLINK CELL。因此,当我单击该单元格中的超链接时,我想跳到具有与SEARCH CELL中所输入内容匹配的个人姓氏的工作表。
我需要的帮助是与此HYPERLINK CELL。
=hyperlink("#gid= ")
如何提取每张纸的gid并在上面的代码中的空白处输入?
有人告诉我没有为此提供的Google表格功能,因此需要自定义功能或脚本。在脚本编辑器中输入该代码后,任何人都可以提供可以运行的代码(即无错误运行)吗?
答案 0 :(得分:3)
脚本:
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!" }}
公式:
=SHEETLIST()
将工作表名称转换为活动超链接:
=ARRAYFORMULA(HYPERLINK("#gid="&
QUERY(INDEX(SHEETLIST();;2); "offset 1");
QUERY(INDEX(SHEETLIST();;1); "offset 1")))
,如果您想将其绑定到手动输入,则可以使用VLOOKUP
=ARRAYFORMULA(IFNA(VLOOKUP(A1, HYPERLINK("#gid="&
QUERY(INDEX(SHEETLIST();;2); "offset 1");
QUERY(INDEX(SHEETLIST();;1); "offset 1")); 1; 0)))
其中A1是您的“搜索单元格”