Excel 中的交互式公式

Excel 中的交互式公式

我正在尝试制作一个 Excel 工作表,人们可以在其中轻松更改多个列中的公式。查看者将具有不同程度的 Excel 经验。

目标

  1. 用户可以调整列的计算方式
  2. 用户可以调整列的计算方式无需直接编辑列中的每个单元格或了解 Excel 语法
  3. 当需要时,用户可以使用 Excel 语法轻松地编辑单元格(不需要解析多级 IF 语句)。

可能的方法

  1. 所有可能的公式都位于每一列单元格中,并带有 IF 语句。最简单的方法是将 IF 语句放在引用选项单元格的公式中(例如,输入 1 计算总和,输入 2 计算乘积)。然而,一旦有多个这样的参数,每个单元格中的公式就会变得非常复杂,新的查看者很难编辑。
  2. 与上文类似,但使用以下方法将公式放在单独的单元格中评价。例如,如果选择选项 1,则计算单元格引用 A1 中的公式;如果选择选项 2,则计算单元格引用 A2 中的公式。在此选项中,公式可轻松编辑。然而,EVALUATE 在当前版本的 Excel for Mac 中不可用,并且有些用户会在 Mac 上进行操作。

例子

在下表中,c = a + b

C is sum?       1
C is product?   0

a   b   c
1   2   3
4   5   9
2   2   4
5   3   8
6   1   7

我希望用户能够轻松地将列更改cc = a * b

C is sum?       0
C is product?   1

a   b   c
1   2   2
4   5  20
2   2   4
5   3  15
6   1   6

我不懂 VBA,但欢迎用 VBA 回答。

答案1

您可以使用以下内容(很高兴找到一个有价值的,而不是强制的,用于SWITCH(),最后):

=SWITCH($E$1,"Sum",A2+B2,"Product",A2*B2)

您将听取他们对在单元格 E1 中执行的操作的意见。真正让它发挥作用的是 E1 的数据验证规则。我使用了带有选项的列表Sum,Product。必须记住里面选项周围的双引号SWITCH()

另一种方法可以使用LET()

=LET(Sum,A2+B2,Product,A2*B2,IF($E$1="Sum",Sum,Product))

当然,还有EVALUATE()使用各种方法来获取公式部分的方法。一种方法是使用VLOOKUP()返回完整公式的EVALUATE()。如果需要更复杂的公式,可以将其与大型结构相结合,并使用上述任何一种方法来处理其中的细节,例如范围。您通常清楚地知道EVALUATE()以及如何使用它,因此它只需要进行单元格端工作,创建查找表并确定要将上述想法用于哪些较小的元素。

相关内容