2014-01-24 7 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 вам необходимо ВЫБЕРИТЕ() w Isely:

В C1, введите:

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

и скопировать вниз.

Развернуть формулу, чтобы включить столько случаев, сколько вам нужно.

Смежные вопросы