如何用Excel计算600x+900y<=2300的所有整数解,并自动筛选最接近等式的x,y的值?在线等!!!急!!!

如题,都是类似的方程式

如图,全部使用公式和内置函数的,可自动求解类似公式的Excel

数据安排如图,

颜色单元格含有公式,如果解的数量太多,可以自由下拉

D2:

=IF(D1="","",IF(ROW()=2,IF((ROW()-1)*$A$2+$B$2<=$C$2,ROW(A1),""),IF(N(D1)*$A$2+(N(E1)+1)*$B$2<=$C$2,N(D1),IF((N(D1)+1)*$A$2+$B$2<=$C$2,N(D1)+1,""))))

E2:

=IF(D2="","",IF(D2*$A$2+(N(E1)+1)*$B$2<=$C$2,N(E1)+1,1))

一起下拉可得到XY的整数解

G2:

=IF(D2="","",C$2-D2*A$2-E2*B$2)

H2:

=INDEX(D:D,SMALL(IF(($G$2:$G$20=MIN($G$2:$G$20)),ROW(G$2:G$20),65536),ROW(A1)))&""

数组公式,Ctrl+Shift+Enter三键结束

右拉下拉可列出最接近组合


变化权重和最大值,可以自动得到XY的正整数解的组合,最接近的组合(可能多解)也会自动列出

附件可下载参考


追问

非常感谢你的回答,我想要的就是这种模式的答案!非常感谢! 还有个小问题,如果xy可以为0应该怎么修改一下呢? 比如600x+900y<=1200。这个时候我想要的答案是x=2,y=0

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-04-20

所有整数解?包括负数吗?

A2=D2=ROW(A1)

B2=INT((2300-A2*600)/900)

C2=600*A2+900*B2

E2=INT((2300-D2*900)/600)

F2=600*E2+900*D2

上述公式向下复制

G2=MAX(C2:C34,F5:F34)

ABC三列条件格式公式   =$C2=$G$2

DEF三列条件格式公式   =$F2=$G$2

追问

额 正整数吧

如何用Excel计算600x+900y<=2300的所有整数解,并自动筛选最接近等式的x...
=IF(D2="","",IF(D2*$A$2+(N(E1)+1)*$B$2<=$C$2,N(E1)+1,1))一起下拉可得到XY的整数解 G2:=IF(D2="","",C$2-D2*A$2-E2*B$2)H2:=INDEX(D:D,SMALL(IF(($G$2:$G$20=MIN($G$2:$G$20)),ROW(G$2:G$20),65536),ROW(A1)))&""数组公式,Ctrl+Shi...

追问:如何用Excel计算600x+900y<=2300的所有整数解,并自动筛选最接近等...
B2=INT((1200-600*A2)\/900)意思是取小于等于(1200-600*A2)\/900的整数 C2=600*A2+900*B2 三个公式向下复制,直至B列出现负数为止。E3=MAX((B2:B5>=0)*C2:C5)数组公式 意思是对B2:B5不等于负数所对应的C列的值求最大值 公式输完后,光标放在公式编辑栏同时按下CTRL+SHIFT+回车键,使数组...

相似回答