使用搜索列查找最新版本并返回超链接

问题描述 投票:0回答:1

希望你们中的一位可以帮助我。

我正在制作一个 Excel 电子表格,它导入一个数据文件,并将数据与一个非常大的文件夹中的其他几个源(包括文件名)进行比较。现在的目标是获取零件编号(文本),在文件夹查询中找到该零件编号,将文件夹路径与文件名组合起来,然后创建超链接。

我已经快完成电子表格了,但我不知道超链接功能。问题是我们有一个修订过程,因此第一个修订版是“Rev01 (a)(b), PartNumber”,然后是“Rev02 (a)(b), PartNumber”。 我见过的大多数搜索/索引功能都使用

MAX()
,它仅适用于值而不是文本。其余的根本不起作用。

要查找的零件编号 文件名 路径
零件编号1 Rev01 (a)(b),零件编号 1 C:\
零件编号2 Rev02 (a)(b),零件编号 1 C:\
Rev01 (a)(b),零件编号 2 C:\

(对我来说一件大事是我只使用溢出公式,这样我就可以重复使用工作表,而不必担心拖拽公式)

经过几个小时的搜索和尝试新公式后,我发现如果您使用

=IF(ISNUMBER(SEARCH(A2,B2:B4)),B2:B4,"")
,您将获得带有第一个 PartNumber 的所有文件名。

结果1
Rev01 (a)(b),零件编号 1
Rev02 (a)(b),零件编号 1

所以,使用

BYROW
LAMBDA
我建造了这个怪物:

=HYPERLINK(BYROW(A2:A3,LAMBDA(row,LET(partnum,IF(ISNUMBER(SEARCH(row,B2:B4)),C2:C4&B2:B4,""),filtered,FILTER(partnum,partnum<>""),INDEX(filtered,COUNTA(filtered)))))) 

对我来说,关键的想法是使用 Result1 作为数组和

INDEX
新数组来获取数组中的最后一个值(在这种情况下必须按升序排序,这很容易使用
LET
:

INDEX(filtered,COUNTA(filtered))
标题 1
C:\Rev02 (a)(b),零件编号 1
C:\Rev01 (a)(b),零件编号2

现在,我的问题是

HYPERLINK()
只是超链接第一个单元格,有没有办法超链接所有单元格?另外,有没有更简单的方法来做到这一点?这看起来有点复杂,但我在网上找不到任何东西。

excel excel-formula array-formulas
1个回答
0
投票

如果你还没有,你可以尝试一下吗:

=BYROW(A2:A3, LAMBDA(row,
LET(partnum, IF(ISNUMBER(SEARCH(row, B2:B4)), C2:C4 & B2:B4, ""),
filtered, FILTER(partnum, partnum <> ""),
HYPERLINK(CONCAT("[", INDEX(filtered, COUNTA(filtered)), "]")))))
  • 当路径有空格时,需要将链接包裹在
    []
    中。
  • 在我的测试中,链接的格式不一致(带有蓝色下划线)(光标悬停在上方时变成指针),但作为链接正常工作。

请测试并告知。


在 Excel 的单元格内开始新的文本行 - Microsoft 支持

© www.soinside.com 2019 - 2024. All rights reserved.