如图
表1中的a列有很多相同的文本,假如我要在表2中加入超链接(hyperlink),比如链接“电脑“,我希望链接到的是第二个”电脑“的位置即a2,请问应该怎么解决?
因为有很多数据所以不太可能一个一个点击超链接
不是相邻的,表2中的a列有相同数量的”电脑“
追答假如表2A列中有两个电脑,那是不是每一个电脑都需要插入超级链接,并且都超级链接到表1的第二个电脑呢
追问是每个电脑都要有一个超链接,但是第一个就链接到第一个位置,第二个就链接到第二个位置
追答那表1的每个电脑和表2的每个电脑是一一对应的吗?并且是位置都一样?表1的第一个电脑是在a3,第二个电脑在a4,表2的第一个电脑也是在a3,第二个电脑也是在a4吗。
这样多累,你还是弄个例表上来吧。
位置不是一一对应的,就是有很多很多数据
追答'那用vba实现吧,在表2运行以下宏
Sub 宏1()
For i = 1 To [a65536].End(3).Row
表2.Hyperlinks.Add Anchor:=Cells(i, 1), Address:="", SubAddress:= _
"表1!A" & i
Next
End Sub
执行的时候要求对象?
是的
追答=HYPERLINK("#"&ADDRESS(SMALL(IF(Sheet1!$A$1:$A$6=Sheet2!A1,ROW(Sheet1!$A$1:$A$6),COUNTA(Sheet1!$A$1:$A$6)+1),COUNTIF($A$1:A1,A1)),1,1,1,"Sheet1"),Sheet2!A1&COUNTIF($A$1:A1,A1))
数组公式,按Ctrl+Shift+Enter,结束输入。
1、其中 Sheet1!$A$1:$A$6 是表1里A列数据区域,如果表1的名字不是 Sheet1,那么需要将 "Sheet1" 改为你的工作表名。
ROW(Sheet1!$A$1:$A$6)不能返回所在的行吧?
追答就先找到第N个,在表1的行,然后用address函数生成单元格地址,比如第一个电脑在第一行,那么就生成一个 Sheet1!A1 的地址,再用hyperlink函数创建超连接。
追问countif后面的三个1是什么意思?
追答那个三个1是address函数的参数。第一个1,是第一列,第二个1,表示绝对引用,第三个1表示A1样式。
整个公式里,下面的small是一部分,求第N个所在的行。求出来作为address函数的第一个参数:
SMALL(IF(Sheet1!$A$1:$A$6=Sheet2!A1,ROW(Sheet1!$A$1:$A$6),COUNTA(Sheet1!$A$1:$A$6)+1),COUNTIF($A$1:A1,A1))
请问可不可以把怎么个函数的设计思路讲一下啊?还有就是if函数不是一般只有三个参数吗?为什么你有四个,麻烦你了
追答if就是三个参数啊。
本回答被提问者和网友采纳