您实际上可以删除CONCATENATE。它不会有太大变化,但它仍然是一个额外的处理:
=IFERROR(HYPERLINK("\\oes-cityhall\DATA\CITYWIDE\public\fppc filings\2013\" &
INDEX(FileName!D:D,MATCH("*"&B9&"*",FileName!D:D,0)),2013),"")
另外,如果您有确切的行数,请使用它。例如,如果您有 25000 行,请使用:
=IFERROR(HYPERLINK("\\oes-cityhall\DATA\CITYWIDE\public\fppc filings\2013\" &
INDEX(FileName!D$1:D$25000,MATCH("*"&B9&"*",FileName!D$1:D$25000,0)),2013),"")
公式有点长,但肯定会花更少的时间(只要没有匹配,它就会缩短时间,因为只要找到不匹配的,它就会继续寻找其他单元格。
要将超链接命名为匹配结果,您需要重复 INDEX 公式:
=IFERROR(HYPERLINK("\\oes-cityhall\DATA\CITYWIDE\public\fppc filings\2013\" &
INDEX(FileName!D$1:D$25000,MATCH("*"&B9&"*",FileName!D$1:D$25000,0)),
INDEX(FileName!D$1:D$25000,MATCH("*"&B9&"*",FileName!D$1:D$25000,0))),"")
如果 B9 为空,则:
=IFERROR(HYPERLINK("\\oes-cityhall\DATA\CITYWIDE\public\fppc filings\2013\" &
INDEX(FileName!D$1:D$25000,IF(B9="",NA(),MATCH("*"&B9&"*",FileName!D$1:D$25000,0))),
INDEX(FileName!D$1:D$25000,IF(B9="",NA(),MATCH("*"&B9&"*",FileName!D$1:D$25000,0)))),"")