我在 Excel 中有两个表格范围。人们将拥有用于这些条件的条件和等效公式。在其他表中,我有应赋予公式的条件及其输入值。我需要用相关条件公式替换输入并获得输出。如何不使用VBA直接在MS Excel中完成
我尝试过使用假设分析和 Lambda 公式。但无论如何我都无法理解。
IF
(
G3="A";
2*H3+I3;
IF
(
G3="B";
2*H3+2*I3+3*H3*I3;
2*I3+H3+2*H3*I3
)
)
正如您所说,
LAMBDA
可能是您最好的方法。 (不过,就我个人而言,我经常在单元格中将更复杂的公式写成 LET
公式,然后将其转换为命名范围中的 LAMBDA
)
因此,我们的第一步是定义输入:让我们使用
var_x
、var_y
和 cond
=LAMBDA(var_x, var_y, cond, [FUNCTION])
现在,我们需要决定我们的功能。 首先,我们需要根据
cond
更改输出,因此我们使用 SWITCH
来实现:
=LAMBDA(var_x, var_y, cond, SWITCH(cond, "A", [FUNC1], "B", [FUNC2], "C", [FUNC3]))
然后我们只需采用您已经算出的 3 个公式,并将它们用作
[FUNC1]
、[FUNC2]
和 [FUNC3]
:
=LAMBDA(var_x, var_y, cond, SWITCH(cond, "A", (2*var_x)+var_y, "B", (2*var_x)+(2*var_y)+(3*var_x*var_y), "C", (2*var_y)+var_x+(2*var_x*var_y)))
坚持命名范围,称为类似
foo_Stack
的东西,并像函数一样调用它:
=foo_stack(H7, I7, G7)