嵌套 IF,返回单元格值 - 可能包含超链接

嵌套 IF,返回单元格值 - 可能包含超链接

示例 - 'Main'!A2 - 嵌套如果检查 'main'!a1 的值,则返回 'data'!A2 的值(如果它包含超链接 - 返回超链接)。

以下是我所拥有的:

=IF($E$2=1,HYPERLINK('Non Brand'!B3),IF($E$2=2,HYPERLINK(Agile!B3),IF($E$2=3,HYPERLINK(Infra!B3),IF($E$2=4,HYPERLINK('BDO Only'!B3),IF($E$2=5,HYPERLINK('IT Only'!B3)," ")))))

如果E2=1,则返回非品牌的值B3(如果是超链接,则返回超链接而不仅仅是文本;否则如果 E2=2,则返回 Agile B3 的值(如果是超链接,则返回超链接而不仅仅是文本;否则如果E2=3-----冲洗并重复。

B3- 有些单元格仅包含文档名称的文本;其他单元格包含要使用的文档模板的超链接。

无论是否为超链接,每个返回值都以超链接形式返回。有效的超链接给出无法访问站点的错误(即使它们是公司内部链接,而且我在我们的网络上)。

如果 E2 不为 =1,则返回 FALSE,并且不会继续嵌套的 if 来检查它是否 =2,等等...

答案1

您在带有超链接的单元格中看到的通常不是超链接地址,而超链接地址是HYPERLINK函数所必需的。Excel 中没有读取此地址的函数。您应该使用 VBA 并定义 UDF 如下(在 VBA 标准模块中):

Function AdrHyper(r As Range) As String
   If r.Hyperlinks.Count > 0 Then
      AdrHyper = r.Hyperlinks(1).Address
   End If
End Function

然后您可以使用电子表格函数

=IFERROR(CHOOSE($E$2,HYPERLINK(AdrHyper('Non Brand'!B3),'Non Brand'!B3),HYPERLINK(AdrHyper(Agile!B3),Agile!B3)),"")

就您而言,最好使用CHOOSE函数,而不是嵌套的IF。您可以根据需要添加更多地址,但每个地址应重复两次,如上例所示。
由于文件包含 UDF 函数,因此必须以.xlsm格式保存。

相关内容