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