如题所述
材料/工具:Excel2007
1、首先我们在D3单元格输入一个求和公式:=SUMPRODUCT(A2:A14*B2:B14)
2、然后在D4单元格输入一个求差公式:=D1-D3。
3、然后,选择【数据】-【规划求解】。
4、选择【目标单元格】为D4,选择【值】处输入0。
5、点击选择按钮选择【可变单元格】
6、区域为B2:B14(即A列数据对应B列区域)。
7、点击【添加】【约束条件】
8、具体按下图设置。
9、点击【求解】按钮开始计算求解。
10、运算结束后弹出如下对话框,选择【保存规划求解结果】
11、这时B列数值为1对应A列数据之和就等于14。
可以用规划求解,以下图中的A1:A20数据为例。
假设要在A1:A20中找出某些数的和等于200,操作步骤如下:
步骤1:在C1单元格输入公式
=SUMPRODUCT(A1:A20,B1:B20)
如下图
步骤2:选定C1单元格,数据>>>规划求解,“设置目标”会自动设置为C1单元格,到:选择“目标值”,并在右侧文本框中输入固定的数字200,鼠标放在”通过更改可变单元格“框中,并选择B1:B20,Excel将自动输入单元格地址,再单击“遵守约束”右侧的“添加”按钮,如下图:
步骤3:在”单元格引用“用鼠标选择B1:B20单元格,中间的下拉框中选择”bin“,右侧框中将自动显示”十进制“,再单击”确定“按钮,如下图
步骤4:通过上步操作后,”遵守约束“列表框中就增加了一个约束”$B$1:$B$20 = 二进制“,单击”求解“按钮,如下图
步骤5:单击”确定“按钮,结果如下图所示,B列结果为1的表示对应A列的数字相加的和为C1的值200。
知识扩展:
1、如果数据菜单没有”规划求解“命令,开发工具>>>加载项,勾选”规划求解加载项“,再单击”确定“按钮,如下图:
2、如果连”开发工具“菜单都没有,操作如下 :
文件>>>Excel选项>>>自定义功能区>>>勾选”开发工具“,再单击”确定“按钮,如下图。
如A列是你的数,加辅助列B为系数,辅助列C为A*B,如C1=A1*B1;
然后对C列求和,比如在D1。
然后用规划求解,目标格为D1,值为你所想要的和;
可变格为B列,对B列添加3个约束,>=0, <=1,int(也就是B列系数值限定为0或1)
然后求解就行了。
如果有多个解,这个办法只找到一个,但B列的初始数不一样的话可能找到的是不同的组合。
参考资料:
本回答被提问者采纳