|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
已知B列的单价,以及C18单元格的总计150000,现在要倒推出A列的数量,而且要求各个数量之间的偏差不能超过30个。
各位大侠,在论坛看到这样一个帖子如下,请问如果想求多种组合的可能性该怎么办,求教了!
先作为问题来提出,过几天贴出本人的解决办法。
数量 单价 合计
6.7 0
1.8 0
2.3 0
5.5 0
1.3 0
10.9 0
1.8 0
0.7 0
58.5 0
28.9 0
5.3 0
8.1 0
3.3 0
7.3 0
20.5 0
17.2 0
总计: 150000
我用的方法是excel的“规划求解”功能。
该功能默认情况下是隐藏的,excel2003版本,需要点击工具→加载宏,然后在弹出的窗口中勾选“规划求解加载宏”,excel2003的工具菜单中会出现“规划求解”菜单项。
excel2007需要点击左上角的office工具按钮,在弹出的菜单中点击下面的“excel选项”,在弹出的窗口中点击左侧的“加载项”,在右侧的的“管理”下拉列表中选择“加载项”,然后点击转到,勾选“规划求解加载项”。然后点击“数据”菜单,会在“分析”标签里面出现规划求解。
好了,现在我们调出来规划求解功能了。开始使用这个功能解决我们的问题吧。
假设你已经准备好了数据,我们开始设置公式。
第一步,在A19单元格输入公式=STDEV(A2:A17),这个公式的意思是求A2到A17单元格的数据的标准偏差。在D19单元格输入公式=SUM(C2:C17)-C18,C2到C17单元格输入公式=A2*B2、=A3*B3……=A17*B17。
第二步,点击规划求解,在弹出的窗口中,设置如下:设置目标单元格为$D$19,等于选择“值为”0,可变单元格选择$A$2:$A$17,约束添加
① $A$19<=5,由于A19单元格的公式是=STDEV(A2:A17),所以这个条件的意思是要求A2到A17单元格的标准偏差不大于5。
② $A$2:$A$17=整数(这个设置要注意,添加约束的时候,设置窗口的单元格引用位置引用$A$2:$A$17,右侧的约束值保留空白,中间的符号选择“int",就是整数了。在右侧输入“整数”会出现错误的。)。
③ $A$2:$A$17>=0。这个条件要求A2到A17的答案不能是负数。
好了,设置好以后,点击求解。有时候他会弹出提示窗口,说到了最大的迭代次数,你可以点击继续,一般都会得出你满意的答案的。
|
|