Excel中在一列中的一组数字中寻找相加值为设定值的几个数

比如A列的这组数字,我想在A列中找到相加值得C1中的数值,在B列中设公式,若相加得C1的值,在对应B列中显示 Y

1、首先在D3单元格输入一个求和公式:=SUMPRODUCT(A2:A14*B2:B14),

2、然后在D4单元格输入一个求差公式:=D1-D3。

3、然后,选择【数据】-【规划求解】。

4、选择【目标单元格】为D4,选择【值】处输入0。

5、点击选择按钮选择【可变单元格】,区域为B2:B14(即A列数据对应B列区域)。

6、然后点击【添加】【约束条件】,具体按下图设置。

7、点击【求解】按钮开始计算求解。

8、运算结束后弹出如下对话框,选择【保存规划求解结果】,这时B列数值为1对应A列数据之和就等于14。

9、完成效果图。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
用《规划求解》:
源数据在A1~A13。
1、在C1输入
=SUMPRODUCT(A1:A13,B1:B13)
回车;
选C1——菜单栏——工具——规划求解——出现《规划求解参数》对话框——设置目标单元格:已导入$C$1——点选“值为”并输入:4.4——可变单元格,导入:$B$1:$B$13
约束:

添加:单元格引用位置:$B$1:$B$13,下拉选“<=”——约束值:1
添加:单元格引用位置:$B$1:$B$13,下拉选“int”——约束值:整数
添加:单元格引用位置:$B$1:$B$13,下拉选“>=”——约束值:0
——确定——求解——确定。
【B列显示“1”对应的A列数据,就是和为4.4的参与值】

外话,若参与运算的数据有个数组,程序会从上到下优先选择。本回答被提问者采纳
第2个回答  2013-08-17
这个用公式的话可能很麻烦,要是用VB的话就好好办很多追问

可以给个VBA的宏吗

追答

Sub b()
Dim x, y As Integer
y = 2
For x = 1 To 13
For y = 2 To 13
If Cells(x, 1) + Cells(y, 1) = Range("c1") And x y Then
Cells(x, 2) = "y"
Cells(y, 2) = "y"
End If

Next y

Next x
End Sub

相似回答