EXCEL如何求出哪几个单元格里的数字之和等于某个特定值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL如何求出哪几个单元格里的数字之和等于某个特定值相关的知识,希望对你有一定的参考价值。

比如A列是
25
11
37
28
6
200
12

求哪几个数字之和等于68如何用excel公式找出?
这个是肯定可以办到的,而且以前我做过,现在忘了,应该是B列是可变列,c1写上=A1*B1然后往下拖,最后要用到什么多变量求解工具,我记得以前我的2003是简版,还特意下载了一个什么多变量求解的安装包

1、在B8单元格输入=SUMPRODUCT(A1:A7,B1:B7)

2、在“数据”选项下的“规划求解”中,以B8为目标单元格,目标值68,B1:B7为可变单元格,并添加约束条件,B1:B7为整数、B1:B7为二进制(即0或1),然后求解,并保留符合条件解,即可。

 

详见附图

 

参考技术A

一共有2^7=128种组合

a1_a7 为数字

b1=MAX(IF(IF(ROW(1:128)<=64,A17,0)+IF(MOD(ROW(1:128),64)<32,A18,0)+IF(MOD(ROW(1:128),32)<16,A19,0)+IF(MOD(ROW(1:128),16)<8,A20,0)+IF(MOD(ROW(1:128),8)<4,A21,0)+IF(MOD(ROW(1:128),4)<2,A22,0)+IF(MOD(ROW(1:128),2)<1,A23,0)=68,ROW(1:128),""))

数组公式,ctrl+shift+enter,

 

c1=IF(b1<=64,"A1+","")& IF(MOD(b1,64)<32,"A2+","") &IF(MOD(b1,32)<16,"A3+","") &IF(MOD(b1,16)<8,"A4+","") &IF(MOD(b1,8)<4,"A5+","") &IF(MOD(b1,4)<2,"A6+","") &IF(MOD(b1,2)<1,"A7","") &" = 68"

 

就是你要的结果

或者:你还可以用下面数组公式查看所有组合:

=IF((ROW()-1)*8+COLUMN()<=64,A17,0)+IF(MOD((ROW()-1)*8+COLUMN(),64)<32,A18,0)+IF(MOD((ROW()-1)*8+COLUMN(),32)<16,A19,0)+IF(MOD((ROW()-1)*8+COLUMN(),16)<8,A20,0)+IF(MOD((ROW()-1)*8+COLUMN(),8)<4,A21,0)+IF(MOD((ROW()-1)*8+COLUMN(),4)<2,A22,0)+IF(MOD((ROW()-1)*8+COLUMN(),2)<1,A23,0)

参考技术B 这个不能直接用公式得出,而是要用到excel的另一个功能——规划求解。步骤如下
1.如工具菜单下无“规划求解”项,点工具—〉加载宏,在弹出的窗口勾选“规划求解”
2.先在单元格设置一个公式,等于另外几个空白单元格相加。这几个相加的单元格数量取决于你估计的数量。例如你列出的7个数字中,200肯定排除在外,按最小的数来估计,最多是4个数相加。那么你的公式就设置为四个单元格相加。例如,设置A1=a2+a3+a4+a5
3.点“规划求解”,设置目标单元格A1 的“值为”68,可变单元格为$A$2:$A$5
4.在“约束”下面点击“添加”,左边选A2,中间选<=,右边输入37,点击添加。
5.继续左边选A2,中间选=>,右边输入6,点击添加
6.继续左边选A2,中间选int(限制为整数),点击添加
7.限制了第一个数的范围后,同理对其它单元格进行约束,并且可以根据你的基本判断,把约束的范围缩小。例如,你判断至少其中有数字是6,那么就可以对其中一个直接输入=6的条件。而且在约束了一个最大的数,那么其余的就往下约束,例如A2约束了<=37,那A3的就约束<=28,A4就<=25
8.把所有可能的条件都加上后,确定,并点击右上角“求解”,如有结果就会出现在目标及约束单元格里。
9.如果没有结果,保存方案,然后再打开规划求解,逐个调整约束条件,一般几次就可以得到结果追问

那么如果没有,怎么找出最接近答案的组合,比如要找以上哪几个相加最近似67或69

追答

你至少可以判断其中必定有某一个数字,按照前面的方法加入到约束条件中。使用规划求解后,如果没有,那么可以调整、添加更多的。例如开始设定必定有6,结果没有的话,可以删除这个约束条件6,添加一个11 的约束值,又或者可以同时用一个单元格为6,另一个单元格为11的条件来约束,这样结果更容易得到。按你给出的数,一般调整3-4次就可以得到结果。规划求解本身往往就会给出一些接近的数字。你可以再用lookup或者match函数,将规划求解的结果去数据列中匹配最接近的值(要先对数据列排顺序)。函数具体用法可以看帮助。

本回答被提问者和网友采纳
参考技术C 答案:25+37+6
--------------------------------------------------------
EXCEL里能想到的无非是规划求解。
使用规划求解时,需要设定变量个数和约束条件。
你可以通过基本判断,试算变量个数从4到7,
但你没法设定约束条件,让变量从给定的集合里选择。

不少人问过这样的问题,我在EXCEL里编了个VBA程序,可以求解这类问题。
需要的话留邮箱
参考技术D 这可是EXCEL办不到的。

excel里面有没有判断指定单元格里有没有包含指定文本的函数?

用FIND+IFERROR可以解决。举例说明。

例如有数据如图:

在B2设置公式:=IFERROR(FIND("的",A2),0) 

注:该公式的含义是查找A2单元格的字符串中是否包含“的",如果没有结果为0,如果有则为”的“在字符串的位置。

将B2的公式复制到B3:B9,结果如图:

参考技术A 假定对A1单元格进行判断有无"指定文本",以下任一公式均可:
=IF(COUNTIF(A1,"*"&"指定文本"&"*")=1,"有","无")
=IF(ISERROR(FIND("指定文本",A1,1)),"无","有")本回答被提问者采纳
参考技术B 在其他单元格输入“=FIND("A",A1)”A是要查找的指定文字,A1是指定的单元格,根据实际情况将公式更改一下 参考技术C 可以使用FIND函数的结果判断.

以上是关于EXCEL如何求出哪几个单元格里的数字之和等于某个特定值的主要内容,如果未能解决你的问题,请参考以下文章

JTable里怎么得到修改后单元格里的值

Excel如何把一列数字显示在一个单元格里并且用逗号分开?

EXCEL函数IF公式里怎么可以判断单元格里包含指定的文字?

datagridview 控制某个单元格只可以输入数字。

如何引用单元格里的路径参与函数计算?

在excel中,如果将若干单元格里面的字符串,在后面的单元格输出所有的排列或者组合,且包括所有的字符串