电子表格中的相互依赖变量

时间:2015-01-14 10:17:21

标签: excel excel-vba spreadsheet vba

假设我有一个输入变量x和三个参数a,b,c,这样:

  • 鉴于b,某些(已知)函数c = f(x,a,b)f
  • 鉴于c我们对某些(已知的,不同的)函数b = g(x,a,c)g

我想在电子表格(例如Excel)中对此进行建模。更确切地说,如果用户提供x,ab,那么将评估c,如果c被给出,则将评估b。似乎无法直接实现这一点,因为单元格可以 一个公式。

是否有规范方式来执行此操作?如果没有,什么是最佳实践解决方法(可能是一些VBA魔术)?

1 个答案:

答案 0 :(得分:1)

您可以将输入字段与计算值分开,并添加一些验证,只使用其中一个互斥字段,例如:

enter image description here

在我的示例中,我使用了以下条件格式来突出显示无效输入:

=AND($B$4<>"", $B$5<>"")

我按照公式计算了值:

=B2
=B3
=IF(AND($B$4<>"", $B$5<>""), "#ERROR: only 1 value can be specified",
    IF($B$4<>"", $B$4, $B$5-1))
=IF(AND($B$4<>"", $B$5<>""), "#ERROR: only 1 value can be specified",
    IF($B$5<>"", $B$5, $B$4+1))

更一般地说:

=if(error_condition, error_message, if(b_is_not_empty, b, g(x,a,c)))