Excel将引用的单元格更改为某个值的函数

Excel将引用的单元格更改为某个值的函数,excel,switch-statement,circular-dependency,circular-reference,Excel,Switch Statement,Circular Dependency,Circular Reference,在Excel工作表中,我想根据某个值更改引用的单元格 B1=A1 & C1=A1-B1 if D1==1 B1=A1-C1 & C1=A1 if D1==0. 原则上,这可以通过以下方式重新定义单元格来实现: B1=A1*D1+(A1-C1)*(1-D1) & C1=(A1-B1)*D1+A1*(1-D1), 但这会生成一个循环引用,因为Excel不知道D1是1还是0 是否有可能为这种情况定义某种“切换”功能 提前感谢,Excel函数“如果”允许您决定必须为给定单元格

在Excel工作表中,我想根据某个值更改引用的单元格

B1=A1 & C1=A1-B1 if D1==1
B1=A1-C1 & C1=A1 if D1==0.
原则上,这可以通过以下方式重新定义单元格来实现:

B1=A1*D1+(A1-C1)*(1-D1) & C1=(A1-B1)*D1+A1*(1-D1),
但这会生成一个循环引用,因为Excel不知道D1是1还是0

是否有可能为这种情况定义某种“切换”功能

提前感谢,

Excel函数“如果”允许您决定必须为给定单元格分配哪些值(无论是否计算)。写作:

=IF(expression;value_if_true; value_if_false) 
对于单元格,允许您表达分配的逻辑

在“虚拟”示例中,B1单元格内容应如下所示:

=IF(D1=1;A1;A1-C1)
=IF(D1=1;A1-B1;A1)
您的C1单元格内容应该如下所示:

=IF(D1=1;A1;A1-C1)
=IF(D1=1;A1-B1;A1)
如果将相同的分配样式应用于其他单元格,请记住根据需要锁定行或列(在行或列标识符之前使用“$”):


我希望这能对你有所帮助。

如果D1==0,那么通过定义你的B1==0,那么为什么B1=A1-C1,其中C1==A1,所以B1=A1-A1?是的,这是真的,但这是一个虚拟示例,在我的模型中有一个更复杂的函数。我的问题更多的是关于如何定义函数,而不是如何计算最终值(这显然很简单,只需使用代数)。非常感谢,我认为你的方法是最好的方法。如果我理解正确,If语句会在条件满足时停止,因此循环引用永远不会出现在您的命题中。事实上,@user2035908,If语句会分析您提供给它的表达式的结果,一旦完成,它实际上会用一个或另一个内容(根据该结果)填充单元格。