我有一个庞大的excel工作簿,我一直在开发它来对工程项目进行一些成本分析。现在,我有一个单元格,我输入一个储存罐的大小,更新另一个包含总储蓄的单元格。
计算节省的过程非常复杂。我的工作簿中有20张,每年一张,每张都参考了坦克的大小。通常情况下,我会尝试制作两个列,然后将节省下来的公式拖动以获得我的x和y值,但我不认为我可以这样做,因为储蓄单元格依赖于其他20张纸。
我想知道的是:绘制坦克大小与储蓄之间关系的最佳方法是什么。理想情况下,我想说“好的,将这个单元格中的值在0到200万之间以1000为增量进行改变,然后记录每个增量的节省单元的值,然后绘制,”但我似乎无法理解弄清楚如何实现这一目标。
答案 0 :(得分:8)
您将需要使用“假设分析”分析工具之一,特别是数据表或方案,具体取决于输入变量的数量:
一般假设分析:
http://office.microsoft.com/en-us/excel/HA102431641033.aspx
如果您有1个或2个输入变量,数据表可能是您最好的选择:
http://office.microsoft.com/en-us/excel/HP100726561033.aspx?pid=CH100648511033
答案 1 :(得分:4)
如果你可以使用一些VBA,可能是一个简单的解决方案(ALT + F11进入编辑器,然后插入模块)
Sub GenerateData()
Dim curDataPt As Long, curVal As Long
Dim rngOut As Range, rngIn As Range, rngData As Range, rngVar As Range
'*** SET VALUES HERE ***'
Const maxVal As Long = 2000000
Const minVal As Long = 0
Const stepVal As Long = 1000
Set rngIn = Sheet1.Range("A1")
Set rngOut = Sheet1.Range("B1")
Set rngVar = Sheet1.Range("D1")
Set rngData = Sheet1.Range("E1")
'************************'
For curVal = minVal To maxVal Step stepVal
curDataPt = curVal / stepVal
rngIn = curVal
rngVar.Offset(curDataPt) = curVal
rngData.Offset(curDataPt) = rngOut
Next curVal
Sheet1.Names.Add "DataIn", rngVar.Resize(curDataPt + 1)
Sheet1.Names.Add "DataOut", rngData.Resize(curDataPt + 1)
End Sub
这假设您的储罐大小在表1中的A1中,总节省量为B1。代码中的Sheet1
是工作表对象的代码名称。在VB编辑器窗口中查看项目资源管理器窗格以确保这是正确的。
使用它的方法是运行VBA(ALT + F8)来生成数据集,并使用图表向导生成图表。但是,在系列选项卡上选择源数据时,请输入值=Sheet1!DataOut
和类别(X)轴标签=Sheet1!DataIn
。
现在您可以使用不同的最小/最大/步数进行游戏,图表将自动更新数据系列。
答案 2 :(得分:0)
这不是你想听到的,但我有一个类似的复杂功能,我已经开发了一段时间,我想绘制它。我从未弄清楚如何并最终意识到我需要升级我的工具。我切换到Matlab,从不回头。
我会感兴趣地关注这个问题。我很想知道是否有办法。