2011-10-04 79 views
1

我有兩個Excel工作表。第一個包含用一個輸入單元(A1)和一個輸出單元(B1)計算的公式。 B1的公式可以是B1 = A1 * 3(示例)。Excel - 作爲函數的工作表

第二個工作表在列A中包含各種值:A1 = 4; A2 = 9; A3 = 5 ...在這張表的相應欄B中,我想得到每個A(第二張)輸入值B1(第一張)= A1(第二張)* 3的結果。

基本上我想把第一張紙作爲函數,其中A1是參數,B1是將結果傳回第二張紙的B列。

表2

A1 4  B1 12 (result from sheet 1) 
A2 9  B2 27 (result from sheet 1) 

...

是否有可能不宏?

回答

0

我想你想在你的工作表中使用這兩列。

Sheet1!B1 * Sheet2!A1 
+0

這其實並不是我想要的。我想將Sheet1作爲一個函數(方法)來根據參數返回值。 – Cosmo

+0

在第一段中,你說B1 = A1 * 3。在第二段中,你說B1 = Sheet2!A1 * 3。這是什麼? –

+0

我想他希望能夠在Sheet1!B1中編寫一個公式「模板」。然後應將該模板調整到Sheet2上的適當位置。 –

1

我不這麼認爲..... 如果在工作表Sheet1 B1你有 3*A1

如果你嘗試這種在Sheet2中B1

`=SUBSTITUTE(Sheet1!$B$1,"A1",A1)` 

它會給 3*4 ,而Sheet2 B2將爲 3*9

但我沒有看到你怎麼能強迫這個用公式進行數值計算,而沒有可能的一些重型公式字符串解析從運營商中分離出數字(如果你改變B1 Sheet 1中的條目,這是不可能的,以便根據需要進行彎曲)

[更新2,但FWIW我有一個命名的範圍做了]我用這個範圍名

RngTest

=EVALUATE(3*INDIRECT("rc[-1]",FALSE))

這是一個全球範圍的名稱,所以它可以在任何工作表上工作,比我之前的OFFSET工作更強大。它由3

所以進入乘以細胞眼前的左= RngTest在B1:B3(然後在這個新的例子C1:C3以及) 給你想要的輸出 enter image description here

+0

+1這是一個奇怪的問題很好刺 –

1

這是建到Excel中。在版本2003中,使用數據,表格菜單。
你可以在網上找到很多例子。這裏是one
您可以使用1或2個條目(參數)創建此類表格。

+0

要添加到此,請參閱:http://stackoverflow.com/questions/4640336/using-a-sheet-in-an-excel-user-defined-function/4640866#4640866 – jtolle

0

完全沒有VBA:期待很多痛苦,我不會去那裏。但...

爲了大幅降低疼痛程度,你實際上可以使用這一個小小的VBA用戶定義函數(不是技術上的「宏」),基本上只是一個包裝,以使可用的VBA的Evaluate功能在工作表中公式:

Function eval(myFormula As String) 
    eval = Application.Evaluate(myFormula) 
End Function 

你可以隨後在細胞B1使用這樣的片材2:

=eval(SUBSTITUTE(Sheet1!$B$1,"A1","A"&ROW())) 

注意,這需要表1個細胞B1至含有A1*3和不=A1*3,即沒有等號。也許稍微擺弄一下,它可以使工作,即使= =符號那裏...

編輯:其實,如果您在公式中鍵入之前格式表1單元格B1作爲文本,這將甚至工作如果你的公式以=開頭。