There are many ways to achieve this. Here is one way. I have extended the function by incorporating the rows and columns that you want to Offset. Paste this code in a module
Syntax
=GetOffset(Range,Row,Col)
Remarks
Range (Required) is the cell which has the formula
Row (Optional) Row(s) you want to offset
Col (Optional) Column(s) you want to offset
Sample Usage
=GetOffset(A1) : This will pickup the value from the same cell which A1 is referring to. If A1 is referring to =data!C69
then GetOffset will get value from data!C69
=GetOffset(A1,1) : This will pickup the value from the next cell (1 row down) which A1 is referring to. If A1 is referring to =data!C69
then GetOffset will get value from data!C70
=GetOffset(A1,1,1) : This will pickup the value from the next cell (1 row down across 1 Col) which A1 is referring to. If A1 is referring to =data!C69
then GetOffset will get value from data!D70
=GetOffset(A1,0,1) : This will pickup the value from the next cell (Same row across 1 Col) which A1 is referring to. If A1 is referring to =data!C69
then GetOffset will get value from data!D69
CODE
Public Function GetOffset(Rng As Range, Rw As Long, Col As Long) As Variant
Dim MyArray() As String, strTemp As String
Dim TempRow As Long, TempCol As Long
On Error GoTo Whoa
Application.Volatile
MyArray = Split(Rng.Formula, "!")
TempRow = Range(MyArray(UBound(MyArray))).Row
TempCol = Range(MyArray(UBound(MyArray))).Column
TempRow = TempRow + Rw
TempCol = TempCol + Col
strTemp = MyArray(0) & "!" & Cells(TempRow, TempCol).Address
GetOffset = Application.Evaluate(Trim(strTemp))
Exit Function
Whoa:
End Function