超链接 - 引用包含命名范围的单元格

超链接 - 引用包含命名范围的单元格

我有一份食谱电子表格,其中有一个导航栏,可导航至不同的类别(例如 PREP 或 HOT 等)。选择 PREP 时,会出现第二个列表,其中包含所有准备项目。用户单击 PREP 项目,食谱就会出现。我可以让所有这些都正常工作。但它有点笨拙,因为我使用隐藏单元格来管理显示哪个食谱列表。

我想要做的是通过引用存储在单元格中的命名范围,根据类别更新一个列表。

例子:

=HYPERLINK("#PREP_1",E2)

这很完美。

但是当我在 A1 中存储“#PREP_1”时

=HYPERLINK(INDIRECT(A1),E2)

这不管用。我尝试了很多次,但似乎找不到解决办法。

我是不是太笨了?......也许不应该在网上问这个问题!

谢谢!

答案1

这里有几个困难。一个是INDIRECT()不需要。这是因为第二个困难:你给出的是HYPERLINK()字符串,而不是某种引用。要求的是字符串,而不是引用,HYPERLINK()当它发挥自己的魔力时,它会将其视为引用。将其转换为引用实际上会给函数一个它无法使用的参数。然后还有一个困难:

#PREP_1不是命名范围的有效名称。您用来INDIRECT()获取 A1 中的值并将其转换为引用。到目前为止一切顺利,但 A1 中的内容必须是有效引用,否则无法执行该步骤。

的问题#PREP_1在于以 为前导#。因此,如果你将其与其余部分分开(其余部分是 Excel 可以接受的名称),事情就会顺利进行:

=HYPERLINK("#"&A1,E2)

实际上,由于您将分离各部分并将它们用作文本部分来构建字符串,因此您不需要(也从来不需要)INDIRECT()。如上所示,Excel 在 A1 中找到值,然后将其附加到#获取#PREP_1字符串中,它期待并乐意立即使用该字符串,无需进一步的工作。

请注意,它PREP_1仍然必须是一个命名范围,否则字符串将无法解析为任何HYPERLINK()可以使用的内容,并且会出现错误。

通常,人们在使用INDIRECT()命名区域时遇到的问题是,他们忘记了已经插入了要解析的级别,但并未更改公式来执行此操作,或者删除了级别以保持平衡。但在这种情况下,您添加了一个解析级别,以便公式将其解析为可行的值(如果该值的呈现方式不同),然后将该值解析为空,可以说,Excel 不知道如何处理最终得到的空值。

答案2

天哪,我试过了 A1 中我能想到的所有迭代方法,除了删除 #。我让它以 VALUETOTEXT(A1) 作为参考,但将 A1 保留为命名范围并在超链接中添加 # 要容易得多。

简单地:

=HYPERLINK("#"&A1,E2)

就这么简单!

谢谢你!

相关内容