ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 6691|回复: 18

[Excel 函数与公式] [第32期]春节送礼,分红包

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-2-5 10:34 | 显示全部楼层 |阅读模式

答案请发送至我的邮箱:w829924@hotmail.com,并跟贴占位,请勿在跟贴中直接发答案(跟帖中如附答案一律不得分)

至本贴编辑时收到以下网友答案:(还未收到).

单选投票, 共有 18 人参与投票

距结束还有: 4074 天1 小时47 分钟

您所在的用户组没有投票权限

点评

8楼大能斑竹有个附件啦。  发表于 2014-10-13 21:55
题目附件不见了,想学习却拿不到材料,很遗憾。  发表于 2013-9-5 12:08

TA的精华主题

TA的得分主题

发表于 2008-2-6 13:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

参与一下,费了很大力气,值此新春佳节之际,祝大家春节愉快,合家幸福!

QUOTE:

C2单元格数组公式(长度111):

=IF(ROW()>SUM(B:B)+1,"",SMALL(LOOKUP(ROW($1:$990),1+SUMIF(OFFSET(B$1,,,ROW($1:$10),1),">0"),A$2:A$11),ROW(A1)))

QUOTE:

用SUMIF计算个数,边界处理得较好,再用LOOKUP列出红包,缺点是速度较慢.

答案正确符合答题要求,评2分.


[此贴子已经被willin2000于2008-2-23 18:55:04编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-10 09:46 | 显示全部楼层

答案已发送至邮箱:w829924@hotmail.com,跟贴占位!

QUOTE:

C2单元格数组公式(长度101):

 =IF(ROW()-2<SUM(B:B),IF(COUNTIF(D$1:D1,D1)<SUMIF(A:A,D1,B:B),D1,MIN(IF(A$2:A$9>D1,A$2:A$9,1000))),"")

QUOTE:

按问题要求一步一步实现的思考方法,用这种方法思考不容易缩短公式长度,综合总体考虑在写短公式方面更具优势.

另MIN,SMALL可以过滤FALSE.所以可简化为(96个字符):

 =IF(ROW()-2<SUM(B:B),IF(COUNTIF(D$1:D1,D1)<SUMIF(A:A,D1,B:B),D1,MIN(IF(A$2:A$9>D1,A$2:A$9))),"")

答案正确和符合答题要求,评2分.

[此贴子已经被willin2000于2008-2-23 21:13:17编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-10 12:23 | 显示全部楼层

已发到版主信箱。

  
祝新春愉快,合家欢乐!
QUOTE:
C2单元格数组公式(长度72):
=IF(ROW(A1)>SUM(B:B),"",SMALL(IF(COLUMN(1:1)<=B$2:B$9,A$2:A$9),ROW(A1)))
QUOTE:
公式思路和出题的本意一模一样,结果也是一样,想到一块去了,省去发我的答案了,呵呵.
答案正确,符合答题要求,评2分.
[此贴子已经被willin2000于2008-2-22 5:34:40编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-12 12:53 | 显示全部楼层

想了半天才做好,已发送到版主邮箱,请批阅。

QUOTE:

C2单元格数组公式(长度118):

=IF(ROW()-2<SUM(B$2:B$9),SMALL($A$2:$A$9,SUM(1*(ROW()-2>=SUMIF($A$2:$A$9,"<"&SMALL($A$2:$A$9,ROW($1:$8)),B$2:B$9)))),)

QUOTE:

通过控制SMALL的第二参数重复来得出,方法正确,公式至少可以再简化为(109字符):

=IF(ROW()-2<SUM(B:B),SMALL(A$2:A$9,SUM(1*(SUMIF(A$2:A$9,"<"&SMALL(A$2:A$9,ROW($1:$8)),B$2:B$9)<ROW(A1)))),"")

由于使用了选项设置屏蔽0,不符合答题要求2,并且不加优化直接改成IF(,,"")后字符数大于长度118,不得分.谢谢参与.

[此贴子已经被willin2000于2008-2-23 19:35:11编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-12 14:51 | 显示全部楼层

春节人闲心不闲,先交个答案,也不知符不符合要求

C2单元格数组公式(长度110):

=IF(ROW(A1)>SUM(B$2:B$9),"",SMALL(LOOKUP(ROW($1:$800)-1,SUBTOTAL(9,OFFSET(B$1,,,ROW($1:$9))),A$2:A$9),ROW(A1)))

QUOTE:

公式思路与2楼相同,与2楼的主要区别是用SUBTOTAL代替了SUMIF来计数.

答案正确符合答题要求,评2分.

[此贴子已经被willin2000于2008-2-23 19:40:51编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-14 09:10 | 显示全部楼层

我的公式65字符

已发送至w829924@hotmail.com

QUOTE:
C2单元格数组公式(长度65):
=TEXT(MIN(IF(SUMIF(A:A,"<="&A$2:A$9,B:B)>ROW()-2,A$2:A$9)),"0;;")

=TEXT(MIN(IF(SUMIF(A:A,"<="&A$2:A$9,B:B)>ROW()-2,A$2:A$9)),"[>]")
QUOTE:

巧妙地用了SUMIF代替了SMALL后可以用TEXT来屏蔽0,本答案字数最少,但缺点是结果为文本(本题为了放宽要求特意没作要求),

使用=IF(ROW(A1)>SUM(B:B),"",MIN..)后长度为77.

答案正确,符合答题要求,评2分.

[此贴子已经被willin2000于2008-2-22 5:33:45编辑过]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2008-2-14 11:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

做了两个方案,一个普通公式,108个字符。另一个数组公式,116个字符。

QUOTE:

108个字符: =IF(ROW(A1)>SUM(B:B),"",IF(ROW(A1)>SUMIF(A$2:A$9,"<="&C1,B$2),SMALL(A$2:A$9,1+COUNTIF(A$2:A$9,"<="&C1)),C1))
116个字符: =TEXT(SMALL((ROW($1:$99)>TRANSPOSE(B$2:B$9))*10^6+TRANSPOSE(A$2:A$9)*10^3+ROW($1:$99),MIN(792,ROW(A1))),"[<1e6]0,;")
98个字符: =TEXT(SMALL((COLUMN(A:CU)>B$2:B$9)*10^6+(A$2:A$9)*10^3+COLUMN(A:CU),MIN(792,ROW(A1))),"[<1e6]0,;")


QUOTE:

公式1与3楼想法差不多.

公式2和公式3的思路都是采用将B$2:B$9与1:99比较的方式扩展成99个,然后用SMALL取数,采用了数据组合的方式,所以公式多较长,直接使用IF的方式在这里有优势.

另外由于没有用到COLUM(1:1)所以用了TRANSPOSE也增加了字符.公式2/3的结果也不是数字.

答案正确符合答题要求,评2分.


[此贴子已经被willin2000于2008-2-23 20:27:13编辑过]

本帖子中包含更多资源

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

x

TA的精华主题

TA的得分主题

发表于 2008-2-15 16:50 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

占个位,等标准答案.

QUOTE:

C2单元格数组公式(长度111):

=IF(ROW(A1)>SUM(B:B),"",SMALL(N(OFFSET(A$1,(TRANSPOSE(ROW($1:$99))<=B$2:B$9)*ROW($1:$8),)),ROW()+791-SUM(B:B)))

QUOTE:

公式思路是将A列转化成99,根据B列确定是否为0.

SMALL(X,ROW()+791-SUM(B:B))倒取数的方式值得借鉴. 但也是用了TRANSPOSE,和没有根据条件直接来联系A列数据,造成较长.

答案正确符合答题要求,评2分.

[此贴子已经被willin2000于2008-2-23 20:41:00编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-15 21:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

         答案已发送请查收!!!!

QUOTE:

C2单元格数组公式(长度76):

=IF(ROW(A1)>SUM(B$2:B$9),"",SMALL(IF(B$2:B$9>=COLUMN(1:1),A$2:A$9),ROW(A1)))

QUOTE:

呀,还有一个想法一样的! SUM(B:B)的话就完全一样了.

答案正确符合答题要求,评2分.

[此贴子已经被willin2000于2008-2-23 20:48:54编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-26 08:46 , Processed in 0.054371 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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