【发布时间】:2020-02-14 05:15:53
【问题描述】:
微软官网有explanation介绍如何在Excel中使用场景。
如果您命名输入单元格,场景管理器将显示名称,因此更容易记住 $C$5 就是价格。
我的问题是:是否可以在 Excel 中某处的表格中设置场景,并让场景管理器从那里读取?在场景管理器中设置多个场景非常繁琐、耗时且容易出错,尤其是当输入链接时 - 例如设置 10 个场景,每个场景都比前一个场景有 x% 的变化。
有什么建议吗?
PS 我知道所有这些事情都可以用 Python 或 R 等脚本语言轻松完成,但在这种非常特殊的情况下,计算并不太复杂,文件需要与其他人共享,所以我必须使用Excel。
VBA 将是最后的手段,因为其中一些人默认禁用 VBA。
编辑
澄清一下,我需要一种方法来创建如下所示的表格,其中蓝色是输入,灰色是输出。根据下面给出的 VBA 宏答案中的示例,我在下面整理了一个平庸的示例,但总体思路是:
- 将多个场景定义为多个输入(超过2个)的组合;
- 创建一个表格,显示每个场景的输入和一些关键输出;
- 请注意,该表没有包含所有输入的所有可能组合,例如其中一个示例中给出的宏 - 这太多了,可读性也不好。
我可以编写一个快速 VBA 脚本来更改模型中的输入、读取结果并创建表格,但我想知道是否有更好的方法 - VBA 通常不是很健壮,从某种意义上说更改一个单元格的位置通常会使事情变得混乱。对于更复杂的模型,我通常避免使用 Excel(这在任何脚本语言中都是平庸的),但我必须在 Excel 中完成。
编辑#2: 为了进一步阐明我的想法,我整理了下面的屏幕截图。每个输出都是许多不同计算的结果,不能用一个小而简单的公式来计算 - 如果可以,我当然不会有任何问题!
我的问题是: - 如果我改变一个输入,那么在幕后发生的所有许多计算都会改变 - 从所有这些计算中读取输出 - 我不能使用双向假设表
如果连这一点都不清楚,我唯一能尝试的就是上传一个 Excel 文件,这在 SO 上通常是不鼓励的。
【问题讨论】:
-
是否迫切需要使用该场景,因为阅读您的描述似乎更像是一种负担,而不是一种收获。你到底想做什么?能不能简单的把场景编辑器拿出来手工做?
-
您能否展示一个示例场景,您需要多少个变化的单元格?需要此信息来提供合适的解决方案。
-
也不知道为什么投反对票。至于提供的示例,它只是一个表格,如果你用公式填充它,那么你就有五个场景的结果。
-
@eem 我没有关注。在最简单的情况下,每个输出都可以用一个简单的公式计算出来,是的。但我想到的是更复杂的情况,比如 2 到 3 个计算选项卡。如果我更改 input1,所有计算都会相应更改。我也不能使用双向假设敏感性表。我想说的是,尽管有上面的例子,我的输出并不像对输入求和或相乘那么简单。我的输出是多次计算的结果。
-
如果你需要一些帮助,那么你应该展示你有什么样的输入和你正在寻找什么样的输出,澄清你的想法并提出一些人可以使用的东西,表现出一些努力并展示什么你已经完成了,你在哪里有问题。到目前为止,您从一个关于是否可以做某事的问题开始,然后在为您提供了一种方法之后,您转到了一个需求列表,因此您的问题看起来越来越像一个 PO;所以我可能不再对它感兴趣了。
标签: excel