2014-01-24 57 views
0

我正在構建一個電子表格,它在單元格中使用不同的公式。這些公式會根據公式ID進行更改。例如,式查找表看起來像這樣:使用EXCEL中的公式查找表格

Formula ID|Formula 
__________+________________ 
    1  | y=x+2 
__________+________________ 
    2  | y=x^2 - 34 
__________+________________ 
    3  | ... 
__________+________________ 
    ... | ... 
__________+________________ 

我的主要工作表看起來像這樣:

| A | B | C 
___+_______+_______+________ 
1 | 2 | *** | =if(A1=2, use formula #2, which is "=B1^2-34", "") 
        =if(A1=1, use formula #1, which is "=B1+2", "") 
___+_______+_______+________ 
2 | 1 | *** | =if(A1=2, use formula #2, which is "=B2^2-34", "") 
        =if(A1=1, use formula #1, which is "=B2+2", "") 
___+_______+_______+________ 
3 | 2 | *** | =if(A1=2, use formula #2, which is "=B3^2-34", "") 
        =if(A1=1, use formula #1, which is "=B3+2", "") 

「A」 列顯示式ID。 「B」欄是「x」的輸入。 「C」列是函數「y」。

我只能找到如何使用查找表中的值,而不是公式。請幫忙。非常感謝。

回答

0

您可以使用簡單的用戶定義函數:

Function eval(formula As String, r As Range) 
    If Left(formula, 1) = "y" Then 
     formula = Right(formula, Len(formula) - 1) 
    End If 
    eval = Evaluate(Replace(formula, "x", r.Address)) 
End Function 

然後調用它在C1這樣的:

=eval(VLOOKUP(A1,Sheet1!$A$1:$B$100,2,0),B1) 

其中Sheet1!$A$1:$B$100存儲您使用公式

+1

它的工作原理!非常感謝。 –

+0

不要忘記標記爲正確答案:) –

0

表沒有VBA你需要CHOOSE() w isely:

在C1中輸入:

=CHOOSE(A1,B1^2-34,B1+2) 

和複製下來。

將公式擴展爲包含儘可能多的案例。