2017-05-04 1003 views
0

有沒有辦法在Excel中以可用於其他公式的方式獲取引用單元格的地址?Excel:獲取在一個公式中引用的地址,並在另一個公式中使用它

我有一個單元格引用另一個內容B1 = Address!A4。在另一個單元格中,我想獲取B1中包含的單元格引用,並使用它來獲取單元格中相對於引用單元格的值。我不想搜索單元格Address!A4的值,因爲我要搜索的範圍可能包含多個匹配項。我想要一個參考單元格。

有沒有辦法做到這一點?

例如:

單元的行中包含的值A1 = 「123È400 S」,B1 = 「123」,C1 = 「400」
單元格中包含的參照這些小區中的一個:G8 = B1

所以在細胞G8 「123」 被顯示值。 我想在小區F8的東西,將使用參考G8作爲一個「指針」或索引B1,我就可以抵消以獲得在A1的地方。

我想要這樣做F8 = OFFSET(CELL( 「內容」,G8),0,-1),這將導致值 「123ê400 S」 被顯示。可悲的是,這不起作用,我得到了#REF!錯誤。

這可能看起來像INDEX,VLOOKUP,MATCH等的候選人,但我不想嘗試定義要查看的單元格範圍,它可能會更改。即使我要定義它,潛在的搜索字符串「123」也可能在該範圍內重複。

看來我應該能夠使用我已經知道的引用,轉到該單元格,然後使用相對於該單元格的單元格。

任何想法?謝謝您的幫助。

+2

我認爲你是'間接'後。 –

+2

OFFSET()?沒有更多的信息很難回答。請爲我們的視覺學習者在您的原始文章中包含一些測試數據和預期輸出。 –

+0

託尼,感謝您爲您的問題添加更多信息,但我的答案沒有幫助,但?它似乎達到了你所要求的... – Wolfie

回答

2

編輯:更簡單的方法

它可能更容易只是在某個單元格中的單元格地址,並使用INDIRECT細胞B1和C1,那麼你並不需要額外的功能如下所述!

indirect


VBA方法:用戶定義的函數

如果您可以將您的工作簿保存爲.xlsm那麼你可以使用一個用戶定義的函數來獲取公式啓用宏,並提取單元格地址。將其添加到工作簿的VBA編輯器中的模塊中(按Alt + F11,插入>模塊)。

Function GetFormula(rng As Range) As String 
    GetFormula = rng.Formula 
End Function 

實施例使用,請注意在C1公式是=GetFormula,但示出的值是在B1下式:

get function

然後既可以使用電池式RIGHT,或做直接在VBA中使用另一個功能。在VBA中做這件事的好處是你做的任何解析都會更清晰,你可以使用RegExp。

Function GetEndRange(rng As Range) As String 
    Dim str As String 
    str = rng.Formula 
    ' Get the characters to the right of an exclamation point 
    ' Assumes formula ended in an address, could do more complicated parsing here 
    str = Right(str, Len(str) - InStr(str, "!")) 
    GetEndRange = str 
End Function 

用途:

end range

現在你可以使用一個單元格公式(或更復雜的宏)來訪問偏移的單元。這裏是細胞公式的方式來做到這一點:

=OFFSET(INDIRECT("Address!" & GetEndRange(B1),TRUE),1,0) 
' Evaluated as: 
' =OFFSET(INDIRECT("Address!A4",TRUE),1,0) 
' =OFFSET(Address!$A$4,1,0) 
' =Address!$A$5 
相關問題