ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
EH云课堂-专业的职场技能充电站 限时送,魔方网表将Excel变在线系统 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 ExcelHome出品 - VBA代码宝免费下载 13门Excel免费公开课任你学
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 6769|回复: 26

[Excel 函数与公式] [第98期]购买玩具[已总结]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-9-12 15:00 | 显示全部楼层 |阅读模式
本帖最后由 delete_007 于 2013-11-27 19:57 编辑

题目说明:
一、国庆前夕,妈妈给小皓(人名)100元整去买玩具.小皓是个军迷,
    挑选了几件武器玩具模型,为花尽可能多的钱,小皓应如何选买?
第一题、每种玩具最多买一件,但歼击机一定要买,
            若有两种选买方法满足上述条件,则玩具多的选法优先.
第二题、每种玩具最多买一件,但没有必选玩具
            若有两种选买方法满足上述条件,请全部列出.
要求:
一、C3:I3和C6:I11分别为第一题和第二题的模拟答案,解答必须与模拟答案一致;
      (第二题两种购买方法的顺序可与模拟答案不同)
二、不可用VBA、条件格式、定义名称、辅助单元,只可函数答题;
三、可以引用A1:I2单元格内容;
四、C4:I4和C13:I18分别为第一题和第二题的答题区域,除了在答题区域内输入
      公式外,不能有其他操作,第一题公式输入在C4单元格,右拉至I4;第二题公式
      输入在C13单元格,右拉至I13,再下拉至C18:I18;注意排错;
五、EXCEL2003须通过.
评分:
一、第一题公式长度小于350,评1分;公式长度小于220,评2分(含=)
一、第二题公式长度小于450,评1分;公式长度小于315,评2分(含=)
三、视公式精彩程度可酌情加分.

请勿多占楼层,否则取消比赛资格!
如需修改答案而又无法自行编辑帖子时,请联系delete_007版主。

比赛日期:2013年09月26日-2013年10月25日,在此之前,请勿答贴。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?免费注册

x

点评

题目采用,方版择时开赛即可。  发表于 2013-9-12 16:54

评分

参与人数 4财富 +50 鲜花 +9 技术 +2 收起 理由
ykqrs + 3 好题啊,又学到了新东西。。。。。。。。。
CheryBTL + 3 太强大了
jsxjd + 3 题目精彩!
delete_007 + 50 + 2 出题奖励。

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-9-26 11:07 | 显示全部楼层
本帖最后由 delete_007 于 2013-11-22 15:57 编辑

第一题,193字符(在特殊情况下会有浮点误差,如巡洋舰与航母组合时):
  1. =TEXT((0&MID(MAX(1001+TEXT(MMULT($C2:$H2+10^-COLUMN($D:$I)+10%%,N(MOD(COLUMN($A:$BK)/2^ROW(1:6)*2,2)+(ROW(1:6)=5)>=1)),"[>100.01]1")),COLUMN(H1)^(C1<>$I1)+1,6^(C1=$I1)))-1,"共花费.00元。;;"&C1&"1套")
复制代码
为避免浮点误差,改用整数形式,201字符:
  1. =TEXT(MID(MAX(100001e7+TEXT(MMULT($C2:$H2+10^-COLUMN($D:$I)+10%%,N(MOD(COLUMN($A:$BK)/2^ROW(1:6)*2,2)+(ROW(1:6)=5)>=1))*10^9,"[>10001e7]1")),COLUMN(G1)^(C1<>$I1)+1,5^(C1=$I1))-1,"共花费0\.00元。;;"&C1&"1套")
复制代码
第二题,246字符,但是遗憾地引用了B13单元格。
  1. =IF(C$1=$I$1,TEXT(SUMIF($B13:B13,">0套",$B$2:B$2),"共花费.00元;;"),TEXT(MID(LARGE(1001+TEXT(MMULT($C$2:$H$2+10^-COLUMN($C:$H),--(MOD(COLUMN($A:$BK)/2^ROW($1:$6)*2,2)>=1))-(ROW($1:$6)>1)%/9,"[>100.01]1;.000000000"),ROW(A1)),COLUMN(H1),1)-1,";;1套"&C$1))
复制代码
浮点误差很可恶,换成整数满足要求,307字符:
  1. =TEXT(MID(100001e6+TEXT(LARGE(--TEXT(MMULT($C$2:$H$2*10^8+10^{5,4,3,2,1,0},--(MOD(COLUMN($A:$BK)/2^ROW($1:$6)*2,2)>=1)),"[>10001e6]1"),ROW(A1)),"[>"&MAX(--TEXT(MMULT($C$2:$H$2,--(MOD(COLUMN($A:$BK)/2^ROW($1:$6)*2,2)>=1)),"[>100]1"))&"e8];-1!e6"),COLUMN(F1)^(C$1<>$I$1)+1,5^(C$1=$I$1))-1,"共花费0\.00元;;1套"&C$1)
复制代码


为避免浮点误差,第一题修改:
=TEXT((0&MID(MAX(1001+TEXT(MMULT($C2:$H2+10^-COLUMN($D:$I)+10%%,N(MOD(COLUMN($A:$BK)/2^ROW(1:6)*2,2)+(ROW(1:6)=5)>=1)),"[>100.01]1;.000000000")),COLUMN(H1)^(C1<>$I1)+1,6^(C1=$I1)))-1,"共花费.00元。;;"&C1&"1套")

——delete_007

评分

参与人数 1技术 +4 收起 理由
moon2778 + 4 优秀作品

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-9-27 10:55 | 显示全部楼层
本帖最后由 ykqrs 于 2013-9-29 19:29 编辑

对于这类题目,我向来是分不清东南西北,不知在哪里下手,fang版出题不易,支持一下下
第一题,225字
  1. =IF(C1=$G1,$G1&"1套",IF(C2="","共花费"&SUMIF($C4:$H4,">""",$C2)&"元",IF(OR(C2=IF(MMULT(SMALL(($C2:$H2=$G2)/1%+$C2:$H2,COLUMN($A:$F)),N(COLUMN($B:$G)>ROW(1:6)))<=100-$G2,SMALL(($C2:$H2=$G2)/1%+$C2:$H2,COLUMN($A:$F)))),C1&"1套","")))
复制代码
今晚又看了看,原来和模拟答案有出入,没有保留两位小数,重新改过,232字,最近开始忙了,会忙到11月初,有时间再简化简化,腾不出时间就这样吧
  1. =IF(C1=$G1,$G1&"1套",IF(C2="",TEXT(SUMIF($C4:$H4,">""",$C2),"共花费#.00元"),IF(OR(C2=IF(MMULT(SMALL(($C2:$H2=$G2)/1%+$C2:$H2,COLUMN($A:$F)),N(COLUMN($B:$G)>ROW(1:6)))<=100-$G2,SMALL(($C2:$H2=$G2)/1%+$C2:$H2,COLUMN($A:$F)))),C1&"1套","")))
复制代码

第二题待想。。。。。

点评

你不易,题目更不易.哈哈.  发表于 2013-10-28 15:32
"fang版出题不易"?是题目不易,还是我不易?^^  发表于 2013-9-27 14:48

评分

参与人数 1财富 +10 收起 理由
delete_007 + 10

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-10-3 12:12 | 显示全部楼层
本帖最后由 jsxjd 于 2013-10-16 21:43 编辑

先上第一题,赞点人气,抽时间再斟酌。
C4 数组公式右拉,204 Chars
  1. =TEXT(MID(LOOKUP(110001%,SMALL(MMULT(1000*(COLUMN($A:$F)=5)+$C2:$H2+0.1%+10%^COLUMN($D:$I),MOD(INT(COLUMN($A:$BK)*2/2^ROW(1:6)),2)),ROW(1:63))),IF(C2,COLUMN()+6,2),IF(C2,1,6)),IF(C2,C1&"0套;;","共花费.00元。"))
复制代码
如果可以使用数组常量,C4 数组公式右拉,198 Chars
  1. =TEXT(MID(LOOKUP(110001%,SMALL(MMULT({0,0,0,0,1000,0}+$C2:$H2+0.1%+10%^COLUMN($D:$I),MOD(INT(COLUMN($A:$BK)*2/2^ROW(1:6)),2)),ROW(1:63))),IF(C2,COLUMN()+6,2),IF(C2,1,6)),IF(C2,C1&"0套;;","共花费.00元。"))
复制代码
第二题 非常具有挑战性,没有找到不符合条件值清零的有效方法,需要三次计算每种组合的金额,好象背着炸药包到处走动,而且还要为了降低嵌套层数加长表达式。先上一个319  Chars
  1. =TEXT(MID(10^10+LARGE(MMULT($C$2:$H$2+10^(9-COLUMN($A:$F)),MOD(INT(COLUMN($A:$BK)*2/2^ROW($1:$6)),2))*(MMULT($C$2:$H$2,MOD(INT(COLUMN($A:$BK)*2/2^ROW($1:$6)),2))=MAX(--TEXT(MMULT($C$2:$H$2,1-(MOD(COLUMN($A:$BK),2^ROW($1:$6))<2^ROW($1:$6)/2)),"[>100]!0"))),ROW(A1)),COLUMN(),6-5*(C$2>0)),IF(C$2,"0套"&C$1,"共花费.00元")&";;")
复制代码
通过使用一个数组常量,缩到 315  Chars,如果 10^10 可以改为 1E10,正好314  Chars
  1. =TEXT(MID(10^10+LARGE(MMULT($C$2:$H$2+10^{8,7,6,5,4,3},MOD(INT(COLUMN($A:$BK)*2/2^ROW($1:$6)),2))*(MMULT($C$2:$H$2,MOD(INT(COLUMN($A:$BK)*2/2^ROW($1:$6)),2))=MAX(--TEXT(MMULT($C$2:$H$2,1-(MOD(COLUMN($A:$BK),2^ROW($1:$6))<2^ROW($1:$6)/2)),"[>100]!0"))),ROW(A1)),COLUMN(),6-5*(C$2>0)),IF(C$2,"0套"&C$1,"共花费.00元")&";;")
复制代码
为了防止 10^10 不能简化为 1E10,继续缩减,由于6种玩具的总金额不会少于1 元,将最后一层Text 的最后一个参数合并,最后312  Chars
  1. =TEXT(MID(10^10+LARGE(MMULT($C$2:$H$2+10^{8,7,6,5,4,3},MOD(INT(COLUMN($A:$BK)*2/2^ROW($1:$6)),2))*(MMULT($C$2:$H$2,MOD(INT(COLUMN($A:$BK)*2/2^ROW($1:$6)),2))=MAX(--TEXT(MMULT($C$2:$H$2,1-(MOD(COLUMN($A:$BK),2^ROW($1:$6))<2^ROW($1:$6)/2)),"[>100]!0"))),ROW(A1)),COLUMN(),IF(C$2,1,6)),"[=1]0套"&C$1&";[>1]共花费.00元;")
复制代码
本人觉得第二题区域数组公式反而困难小一些,因为上面的公式花了29$来固定行列,下面是C13:I18 区域数组公式(308 Chars)
  1. =TEXT(MID(1000+LARGE(MMULT(C2:H2+10%^COLUMN(C:H),MOD(INT(COLUMN(A:BK)*2/2^ROW(1:6)),2))*(MMULT(C2:H2,MOD(INT(COLUMN(A:BK)*2/2^ROW(1:6)),2))=MAX(--TEXT(MMULT(C2:H2,1-(MOD(COLUMN(A:BK),2^ROW(1:6))<2^ROW(1:6)/2)),"[>100]!0"))),ROW(1:6)),IF(C2:I2,COLUMN()+5,2),IF(C2:I2,1,6)),IF(C2:I2,"1套"&C1:I1,"共花费.00元")&";;")
复制代码

评分

参与人数 1财富 +50 技术 +4 收起 理由
delete_007 + 50 + 4 优秀答案

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-10-4 17:52 | 显示全部楼层
本帖最后由 delete_007 于 2013-11-22 16:01 编辑

先交了
如果到时减了又不能编辑   再补充2次再将2个公式合并好了``

1   含等号236   昨天貌似减了几个没保存   不过还没过
  1. =IF(MOD(RIGHT(MIN(-TEXT(MMULT(($C2:$H2+1%)*(($C1:$H1="歼击机")+MOD(ROW(64:127)/2^(6-COLUMN($A:$F)),2)>=1),L1:L6+1)/1%%%+ROW(64:127),"[<100099999]00;!0")),3)/2^(8-COLUMN()),2)>=1,C1&"1套",IF(C2,"",TEXT(SUMIF($B4:B4,"?*",$B2),"共花费0.00元。;;")))
复制代码
2   含等号282
  1. =IF(MOD(LARGE(COLUMN($A:$BL)^(MMULT($C$2:$H$2,-(MOD(COLUMN($BL:$DW)/2^(6-ROW($1:$6)),2)>=1))=MIN(-TEXT(MMULT($C$2:$H$2,--(MOD(COLUMN($BL:$DW)/2^(6-ROW($1:$6)),2)>=1)),"[<=100]0;!0")))+63,ROW(A1))/2^(8-COLUMN()),2)>=1,"1套"&C$1,IF(C$2,"",TEXT(SUMIF($B13:B13,"1*",$B$2),"共花费0.00元;;")))
复制代码
``

补充内容 (2013-10-13 09:53):
第一题改
=IF("第一参数",IF(C2,"",TEXT(SUMIF($B4:B4,"?*",$B2),"共花费0.00元。")),C1&"1套")
第一参数为下一个补充的公式

补充内容 (2013-10-13 10:02):
第一参数为
MOD(RIGHT(MIN(-TEXT(MMULT(($C2:$H2+1%)*(($C1:$H1="歼击机")+MOD(ROW(1:64)/2^{0,1,2,3,4,5},2)>=1)-1%,L1:L6+1)/1%%%+ROW(1:64),"[<1e8];!0")),3)/2^COLUMN()*8,2)<1

补充内容 (2013-10-13 11:28):
原先没注意
上面的第一参数假设只能买歼击机的时候会出错
将row(1:64)改为row(1:63)就可以了
下一条补充再补充完整的第一参数``

补充内容 (2013-10-13 12:01):
第一参数为
  1. MOD(RIGHT(MIN(-TEXT(MMULT(($C2:$H2+1%)*(($C1:$H1="歼击机")+MOD(ROW(1:63)/2^{0,1,2,3,4,5},2)>=1)-1%,L1:L6+1)/1%%%+ROW(1:63),"[<1e8];!0")),3)/2^COLUMN()*8,2)<1
复制代码
含等号218``

补充内容 (2013-10-15 21:36):
第二题
哎绕来绕去``
含等号262字符
  1. =IF(MOD("MOD第一参数",2)<1,"",IF(C$2,"1套"&C$1,TEXT(SUMIF($B13:B13,"?*",$B$2),"共花费0.00元")))
复制代码
下一条补充为MOD第一参数``

补充内容 (2013-10-15 21:36):
  1. -LARGE(COLUMN($A:$BL)*(MMULT($C$2:$H$2,-(MOD(COLUMN($BL:$DW)/2^ROW($1:$6)*2,2)<1))=MIN(-TEXT(MMULT($C$2:$H$2,--(MOD(COLUMN(1:1)/2^ROW($1:$6)*2,2)<1)),"[>100]!0"))),ROW(A1))*8/2^COLUMN()
复制代码

点评

以后遇到自己不能编辑帖子的情况,请PM我,由我帮忙编辑。不要搞这么多补充内容,还很难看懂。  发表于 2013-11-14 09:16

评分

参与人数 1财富 +20 技术 +2 收起 理由
delete_007 + 20 + 2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-10-6 20:50 | 显示全部楼层
本帖最后由 delete_007 于 2013-11-22 16:34 编辑

此题着实不易,像浩繁的大工程。下手时束手无策,虽然是两题,但是突破了核心构造,两题就都有了方向。
个人觉得第一题更难些。
第一题:
=IF(-1^INT(RIGHT(MAX(TEXT(MMULT($C2:$H2,0+(-1^INT(COLUMN($A:$BL)/2^{5;4;3;2;-1;0})>0)),"[>100]!0;.00")/1%%+MMULT(1^$C2:$H2,(-1^INT(COLUMN($A:$BL)/2^{5;4;3;2;-1;0})>0)/1)+COLUMN($A:$BL)%),2)/2^(8-COLUMN()-(C1=$G1)*2))*C2 >0,C$1&"1套",IF(C1=$I1,TEXT(SUM($C2:$H2*($C4:$H4<>"")),"共花费.00元"),""))



第二题:
=IF(-1^INT(LARGE((MAX(TEXT(MMULT((-1^INT(ROW($1:$64)/2^{5,4,3,2,1,0})>0)*$C$2:$H$2,1^ROW(1:6)),"[>100]\0;0")/1)=MMULT((-1^INT(ROW($1:$64)/2^{5,4,3,2,1,0})>0)*$C$2:$H$2,1^ROW(1:6)))*ROW($2:$65)-1,ROW(1:1))/2^(8-COLUMN()))*C$2 >0,"1套"&C$1,IF(C$1=$I$1,TEXT(SUM($C$2:$H$2*($C13:$H13<>"")),"共花费.00元;;"),""))


对以上公式改进优化:
第一题:261字符
=LOOKUP(MOD(MAX(MMULT(10^{5,2},--TEXT(MMULT($C2:$H2^{1;0},1+-1^INT(COLUMN($A:$AF)/2^{1;2;3;4;-1;0})),"[>200]!0;.00"))+COLUMN($A:$AF)),100),ROW(1:32),IF(-1^INT(ROW(1:32)/2^(MOD(COLUMN()-1,6)-1))*C2>0,C1&"1套",IF(C2,"",TEXT(SUM($C2:$H2*($C4:$H4<>"")),"共花费.00元"))))

进一步优化改进:
公式1:适用于像源数据那样,只有一种符合要求的方案,206字符。

=IF(-RIGHT(MIN(MMULT(10^{5,1,0},-TEXT(MMULT($C2:$H2^{1;0;0}-{0;0;1}*($C1:$H1<>C1),1+-1^INT(COLUMN($A:$AF)/2^{1;2;3;4;-1;0})),"[>200]!0;.00")))),C1&"1套",IF(C2,"",TEXT(SUM($C2:$H2*($C4:$H4<>"")),"共花费.00元。")))

公式2:适用于源数据变化,有符合要求的多个方案,随意选取其中一种,如1、2、3、4、6列数据都相同:224字符。

=IF(-RIGHT(MIN(MMULT(10^{7,3,0},-TEXT(MMULT($C2:$H2^{1;0;0}-{0;0;1}*($C1:$H1<>C1),1+-1^INT(COLUMN($A:$AF)/2^{1;2;3;4;-1;0})),"[>200]!0;.00"))-COLUMN($A:$AF)*10)),C1&"1套",IF(C2,"",TEXT(SUM($C2:$H2*($C4:$H4<>"")),"共花费.00元。")))


第二题:281字符

=IF(-1^INT(LARGE((MAX(TEXT(MMULT($C$2:$H$2,1+-1^INT(COLUMN($A:$BL)/2^{0;1;2;3;4;5})),"[>200]\0;.00")/1)=MMULT($C$2:$H$2,1+-1^INT(COLUMN($A:$BL)/2^{0;1;2;3;4;5})))*COLUMN($B:$BM)-1,ROW(1:1))/2^(COLUMN()-3))*C$2>0,"1套"&C$1,IF(C$2,"",TEXT(SUM($C$2:$H$2*($C13:$H13<>"")),"共花费.00元;;")))
第一题引用了C4:H4,可修改如下:
=TEXT(MID(MAX(10^9+10^4-MMULT(10^{6,3,0},-TEXT(MMULT($C2:$H2^{1;0;0}-{0;0;1}*($C1:$H1<>C1),1+-1^INT(COLUMN($A:$AF)/2^{1;2;3;4;-1;0})),"[>200]!0;.00"))/2+COLUMN($A:$AF)*10),10-8*(C1=$I1),5)-1,"共花费0\.00元。;;"&C1&"1套")

214字符。

——delete_007








评分

参与人数 1财富 +20 技术 +2 收起 理由
delete_007 + 20 + 2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-10-11 11:04 | 显示全部楼层
本帖最后由 delete_007 于 2013-11-22 16:01 编辑

第一题,347个字符

  1. =IF((MOD(MID(MAX(TEXT(MMULT($C2:$H2*(MOD(ROW(1:63)/2^{5,4,3,2,-1,0},2)>=1),ROW(1:6)^0)+$G2,"[>100]!0")*100+MMULT(INT(MOD(ROW(1:63)/2^{5,4,3,2,-1,0},2)),ROW(1:6)^0)+ROW(1:63)/100+0.001),6,2)/2^(6-COLUMN(A1)),2)<1),IF(C1="开销",TEXT(MAX(--TEXT(MMULT($C2:$H2*(MOD(ROW(1:63)/2^{5,4,3,2,-1,0},2)>=1),ROW(1:6)^0)+$G2,"[>100]!0")),"共花费00.00元"),""),C1&"1套")
复制代码
第二题: 389个字符
  1. =IF(MOD(LARGE((MAX(--TEXT(MMULT($C$2:$H$2*(MOD(ROW($1:$63)/2^{5,4,3,2,1,0},2)>=1),ROW($1:$6)^0),"[>100]!0"))=MMULT($C$2:$H$2*(MOD(ROW($1:$63)/2^{5,4,3,2,1,0},2)>=1),ROW($1:$6)^0))*ROW($1:$63),ROW($A1))/2^(6-COLUMN(A1)),2)<1,IF((C$1="开销")*(COUNTBLANK($B13:B13)<>7),TEXT(MAX(--TEXT(MMULT($C$2:$H$2*(MOD(ROW($1:$63)/2^{5,4,3,2,1,0},2)>=1),ROW($1:$6)^0),"[>100]!0")),"共花费00.00元"),""),"1套"&C$1)
复制代码


第一题,刚好花掉100元时,结果出错,修改如下:
=IF((MOD(MID(10^5+MAX(TEXT(MMULT($C2:$H2*(MOD(ROW(1:63)/2^{5,4,3,2,-1,0},2)>=1),ROW(1:6)^0)+$G2,"[>100]!0")*100+MMULT(INT(MOD(ROW(1:63)/2^{5,4,3,2,-1,0},2)),ROW(1:6)^0)+ROW(1:63)%)&0,8,2)/2^(6-COLUMN(A1)),2)<1),IF(C1="开销",TEXT(MAX(--TEXT(MMULT($C2:$H2*(MOD(ROW(1:63)/2^{5,4,3,2,-1,0},2)>=1),ROW(1:6)^0)+$G2,"[>100]!0")),"共花费.00元"),""),C1&"1套")

——delete_007


评分

参与人数 1财富 +10 技术 +2 收起 理由
delete_007 + 10 + 2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-10-14 13:39 | 显示全部楼层
本帖最后由 delete_007 于 2013-11-22 16:26 编辑

1
  1. =TEXT(MID(MAX(TEXT(MMULT($C2:$H2+(COLUMN($C:$H)=COLUMN())%%%,N(MOD(COLUMN($A:$AF)-1,{32;16;8;4;1;2})<{16;8;4;2;1;1})),"[>100.01]\0")+10^3+COLUMN($A:$AF)%%),10-(COLUMN()=9)*8,6),"[=1]"&C1&"1套;共花费0.00元。")
复制代码
2
  1. =TEXT(MID(TEXT(LARGE(--TEXT(MMULT($C$2:$H$2+(COLUMN($C:$H)=COLUMN())%%%,(MOD(COLUMN($A:$BK)-1,2^ROW($1:$6))<{1;2;4;8;16;32})*1)+COLUMN($A:$BK)%%,"[>100.01]\0"),ROW(A1)),"[<"&MAX(--TEXT(MMULT($C$2:$H$2,(MOD(COLUMN($A:$BK)-1,2^ROW($1:$6))<{1;2;4;8;16;32})*1),"[>100]\0"))&"]\0")+10^3,10-(COLUMN()=9)*8,6),"[=1]1套"&C$1&";[=] ;共花费0.00元。")
复制代码


第一题不满足“玩具多的选法优先”,修改如下:
=TEXT(MID(MAX(TEXT(MMULT($C2:$H2+10%%+($C1:$H1=C1)%%%,N(MOD(COLUMN($A:$AF)-1,{32;16;8;4;1;2})<{16;8;4;2;1;1})),"[>100.01]\0")+10^3+COLUMN($A:$AF)/10^5),11-(COLUMN()=9)*9,6),"[=1]"&C1&"1套;共花费0.00元。")
198字符。
——delete_007

评分

参与人数 1财富 +20 技术 +2 收起 理由
delete_007 + 20 + 2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-10-16 08:32 | 显示全部楼层
本帖最后由 xzk235 于 2013-10-16 08:41 编辑

实在想不出好答案了,先把公式贴出来再慢慢想。
C4公式1(371字符)
  1. =VLOOKUP(""&MAX(MMULT({1,0.001},--TEXT(MMULT($C$2:$H$2^{1;0},1-MOD(INT(COLUMN($A:$AF)/2^{4;3;2;1;6;0}),2)),"[>100]!0;0.00"))),TEXT(MMULT(MMULT(1-MOD(INT(ROW($1:$32)/2^{4,3,2,1,6,0}),2),TRANSPOSE($C$2:$H$2^{1;0})),{1;0.001}),{"0.000","","","","","","","","共花费0.00元。"})&TEXT(1-MOD(INT(ROW($1:$32)/2^{6,6,4,3,2,1,6,0,6}),2),IF($A$2:$I$2="","",$A$1:$I$1&"1套;;;")),COLUMN(),0)
复制代码
C4公式2(372字符)
  1. =INDEX(TEXT(MMULT(IF(ROW($1:$7)<7,N(ROW($1:$7)=COLUMN($A:$F)),$C$2:$H$2),1-MOD(INT((COLUMN($A:$AF)-1)/2^{4;3;2;1;6;0}),2)),"[>1]共消费0.00元;[=1]"&TRANSPOSE($C$1:$I$1)&"1套;"),COLUMN()-2,MOD(MAX(MMULT($C$2:$H$2^0,1-MOD(INT(COLUMN($A:$AF)/2^{4;3;2;1;6;0}),2))*100+100000*TEXT(MMULT($C$2:$H$2,1-MOD(INT(COLUMN($A:$AF)/2^{4;3;2;1;6;0}),2)),"[>100]!0;0.00")+COLUMN($A:$AF)),100)+1)
复制代码
C13(363字符)
  1. =INDEX(TEXT(MMULT(IF(ROW($1:$7)<7,N(ROW($1:$7)=COLUMN($A:$F)),$C$2:$H$2),MOD(INT((COLUMN($A:$BL)-1)/2^{5;4;3;2;1;0}),2)),"[>1]共消费0.00元;[=1]1套"&TRANSPOSE($C$1:$I$1)&";"),COLUMN()-2,LARGE((MAX(--TEXT(MMULT($C$2:$H$2,MOD(INT(COLUMN($A:$BL)/2^{5;4;3;2;1;0}),2)),"[>100]!0;0.00"))=MMULT($C$2:$H$2,MOD(INT(COLUMN($A:$BL)/2^{5;4;3;2;1;0}),2)))*COLUMN($A:$BL),ROW(A1))+1)
复制代码
最郁闷的莫过于C4公式比C13还长。

评分

参与人数 1财富 +30 技术 +1 收起 理由
delete_007 + 30 + 1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-10-22 00:19 | 显示全部楼层
本帖最后由 Bodhidharma 于 2013-10-22 00:24 编辑

這題也太折騰人了…已經不想要再細修公式了(暈)

暴力窮舉法,
第一題數組公式:
  1. =IF(MOD(RIGHT(MIN(TEXT(6+MMULT(-(MOD((ROW(1:64)-1)/{32,16,8,4,2,1},2)>=1),ROW(1:6)^0)+999*(100-HLOOKUP("歼击机",$C1:$H2,2,)-MMULT(($C1:$H1<>"歼击机")*$C2:$H2*(MOD((ROW(1:64)-1)/{32,16,8,4,2,1},2)>=1),ROW(1:6)^0)),"#;9!e9;0")+ROW(1:64)%),2)-1,2^(7-COLUMN(A:A)))>=2^(6-COLUMN(A:A)),C1&"1套",IF(COLUMN()=9,"共花费"&TEXT(SUMIF($B4:B4,"><",$B2:B2),"#.00")&"元。",""))
复制代码

第二題數組公式
  1. =IF(MOD(LARGE((100-MIN(--TEXT(100-MMULT($C$2:$H$2*(MOD((ROW($1:$64)-1)/{32,16,8,4,2,1},2)>=1),ROW(1:6)^0),"#.#;999;0;"))=MMULT($C$2:$H$2*(MOD((ROW($1:$64)-1)/{32,16,8,4,2,1},2)>=1),ROW(1:6)^0))*(ROW($1:$64)-1),ROW(1:1)),2^(7-COLUMN(A:A)))>=2^(6-COLUMN(A:A)),"1套"&C$1,IF((COLUMN()=9)*COUNTIF($B13:B13,"><"),"共花费"&TEXT(SUMIF($B13:B13,"><",$B$2:B$2),"#.00")&"元",""))
复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?免费注册

x

点评

高兴得太早了,感觉 100 期仍有嵌套问题,哈哈……  发表于 2013-10-26 18:38

评分

参与人数 1财富 +20 技术 +2 收起 理由
delete_007 + 20 + 2

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,每天学会一个新技能

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2019-2-18 06:02 , Processed in 0.107473 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Wooffice Inc.

   

沪公网安备 31011702000001号 沪ICP备11019229号

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:徐怀玉律师 李志群律师

快速回复 返回顶部 返回列表