在其他单元格中查找相对于地址的单元格
是否有一个函数,我可以放在单元格A2
,将返回下面的任何单元格中写入任何单元格A1
?
所以例如,如果A1
包含=B35
那么A2
将返回单元格B36
包含的值,如果我将A1
更改为=C17
则A2
现在将包含C18
任何内容?
我一直在尝试使用indirect()
, offset()
和address()
,但无法弄清楚。
假设你不想做比复制单个单元格引用更复杂的任何东西,你可以混合使用一个小的VBA。
在一个新的模块中:
Public Function tFormula(ByVal Target As Range) As String tFormula = Mid(Target.FORMULA, 2) End Function
B1 =“= C1”
C2 =“你好”
A1 =“=偏移(tFormula(B1),1,0)”
偏移(tFormula(B1),1,0)=“你好”
我不认为这可以像你想要的那样完成。 最近的我可以将“目标”地址放在一个单元格中,例如,在这个图片中,A2只包含string“b3”。 那么你可以指出间接的function。 所以在D2中的公式,对于B3以下的单元格的值是:
=OFFSET(INDIRECT(A2),1,0)
我想我可能已经解决了这个问题。 在Excel 2013中,我的问题与您的问题类似:
E107
包含=A100
,我想要E108
返回单元格B100
包含的值,所以如果我将E107
更改为=A101
则E108
现在将包含B101
任何内容。
我的解决scheme
=INDIRECT(CHAR(CODE(RIGHT(LEFT(FORMULATEXT(E107),2),1))+1)&RIGHT(FORMULATEXT(E107),LEN(FORMULATEXT(E107))-2))
我使用FORMULATEXT
获取单元格中的公式文本,并使用CODE
和CHAR
进行ASCII操作,将它们合计为A
,然后变成B
,然后使用INDIRECT
返回值。 一些string操作需要使用LEFT
和RIGHT
函数。