如何从工作表中获取公式单元格并仅更改一次该公式的变量?

Posted

技术标签:

【中文标题】如何从工作表中获取公式单元格并仅更改一次该公式的变量?【英文标题】:How to get a formula cell from a sheet and change a variable of that formula for just one time? 【发布时间】:2011-12-04 02:10:08 【问题描述】:

我有一张表格,它使用总和、事实和自定义函数进行繁重的计算,结果是一个单元格。想象一系列简单的总和:

  | A   |
---------
1 | 39  | → This is my variable, everything else is fixed
2 | 800 | 
3 | 200 | 
4 | =Sum(A1:A3) |

在另一张表中,我想在 Sheet1 A3 单元格上获取公式的结果值,但是我想对该表的一个变量进行更改,即为此目的的 Sheet1 A1

  |              A               |    B    |
--------------------------------------------
1 | =X(Sheet1.A4, B1, Sheet1.A1) |  40     |
2 | =X(Sheet1.A4, B1, Sheet1.A1) |  50     |
3 | =X(Sheet1.A4, B1, Sheet1.A1) |  100    |
4 | =X(Sheet1.A4, B1, Sheet1.A1) |  200    |
5 | =X(Sheet1.A4, B1, Sheet1.A1) |  1000   |

这将导致:

  |   A  |  B    |
------------------
1 | 1041 |  40   |
2 | 1051 |  50   |
3 | 1100 |  100  |
4 | 1200 |  200  |
5 | 2000 |  1000 |

所以我的问题是,X 函数存在吗?我怎样才能让它这样工作?我想在单元格 Sheet1.A3 上获得公式的结果,但是我还希望在这种情况下更改 A1 单元格的值以获得不同的结果。

将不胜感激任何提示。

【问题讨论】:

1) 在 Sheet1 上,单元格 A2 如何从 800 变为 200?单元格 A3 中的公式应该是 =Sum(A1:A2) 吗?还是公式实际上在单元格 A4 中? 2) 在另一张纸上,单元格 B1 的值如何从 40 变为 41? 关于 1) 和 2),编号错误和值,现在已修复。感谢通知! :-) 所以你想在 Sheet1!A1 中保持 39 的值不变,但是你想使用 Sheet1!A4 中的公式,传递一个不同的值来代替 A1 并得到结果? 【参考方案1】:

我会通过另一个工作表(或同一个工作表中的另一个数据范围)包含您要测试的 A1 的可能值来做到这一点,然后编写一个小的 VB 宏来:

    依次用每个值替换 Sheet1:A1 重新计算 Sheet1 将所需值(A1 和 A3)复制到 Sheet2 中的相关单元格中。

【讨论】:

以上是关于如何从工作表中获取公式单元格并仅更改一次该公式的变量?的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL2010如何显示工作表中单元格内的公式

VBA - 复制单元格并粘贴列中的空行

如何使用VBA选中工作表中不带公式的单元格,谢谢

MAC VBA尝试从每个工作表中剪切一个单元格并粘贴到下一个空单元格中的另一张表中

在不同的工作表中根据单元格(其中有公式)改变标签页的颜色,适用于多个工作表。

Excel公式不更新单元格