我发布这个问题是因为我有一段时间试图自己找到答案。
基本上我有一个单元格引用一个引用另一个单元格的单元格,其中包含一些数据。例如,A3=A2
和A2=A1
以及单元格A1
包含文本Hello
。因此,单元格A2
和A3
也包含相同的文字。见下图:
但是,让我们说我实际上希望单元格A3
显示与A2
指向的单元格位置相关的数据(记住A3=A2
)。我需要使用OFFSET
函数来执行此操作,并且可以认为A3=OFFSET(A2, 0, 1)
可能有效(click here to see how OFFSET works)。但是OFFSET
本身并不起作用。它会将数据从单元格返回到单元格A2
的右侧(如下所示),而不是意识到A2
指向A1
,然后将数据返回到{{ 1}}。
那么我们如何通过单元格A1
间接获取单元格A3=B1
?
答案 0 :(得分:0)
我们需要使用一组函数,其中一个是INDIRECT
。 click here to see how INDIRECT works。因此,为了使用INDIRECT
,我们需要在单元格A2
中找到的文本。 FORMULATEXT
函数(more info)会在单元格=A1
中使用时从单元格A2
中提取A3
:
A3=FORMULATEXT(A2)
,如下所示:
现在我们只需要从文本中删除=
,这样我们就可以使用INDIRECT
可以使用的实际文本引用。您可以使用RIGHT
或MID
函数(right,mid)结合LEN
函数(length)来执行此操作。如果工作表中的行数从单个数字变为两位数,则需要LEN
,依此类推。您还需要再次传入FORMULATEXT
函数,以便计算文本=A1
的长度。如果不这样做,它将计算Hello
的长度。您还需要注意LEN()-1
是您需要的正确长度,因为您正在从文本中丢弃=
。
例如:A3=RIGHT(FORMULATEXT(A2),LEN(FORMULATEXT(A2))-1)
给我们:
将所有内容放在一起,您可OFFSET
A2
引用A3
INDIRECT
的单元格,如{...}}:
A3=OFFSET(INDIRECT(RIGHT(FORMULATEXT(A2),LEN(FORMULATEXT(A2))-1)),0,1)