Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4578|回复: 18

[已结贴]数字排序

[复制链接]
发表于 2009-10-6 16:25 | 显示全部楼层 |阅读模式
<p><br/></p><p>1.题目改编自一位会员的提问,具体答题要求见附件</p><p>2.前3名答案正确、符合答题要求者每人15个BB</p><p>3.用回复可见贴答题,重新编辑后无效。</p><p>4.10月15日前结贴,最优答案者设最佳答案</p><p></p><p><font color="#0909f7"><strong>3楼公式:</strong></font></p><p><font color="#0909f7">=RIGHT(SUM(MOD(LARGE(MMULT(COLUMN(1:1)^0,N(MID(B3&amp;B4&amp;B5&amp;B6&amp;B7,ROW(1:256),1)=(COLUMN(A:J)-1)&amp;""))+FIND(COLUMN(A:J)-1,B3&amp;B4&amp;B5&amp;B6&amp;B7&amp;5^19)%+(COLUMN(A:J)-1)%%,ROW(1:10))*10^4,10)*10^ROW(2:11))%,COUNT(MATCH("*"&amp;COLUMN(A:J)-1&amp;"*",B3:B7&amp;"",)))</font></p><p><font color="#0909f7">MATCH("*"&amp;COLUMN(A:J)-1&amp;"*",B3:B7&amp;"",),这一段很不错,充分利用MATCH函数精确查找文本时支持通配符的特性。</font></p><p><font color="#0909f7">但是把各个单元格连接的方法确是有些取巧,可这还是其次,最大的问题在于,把数字缩小后用MOD函数处理会产生浮点问题,如把数字位数增加,可能会得到不正确的结果,用放大数值的方法会好些。公式不能算完全正确。</font></p><p><font color="#0909f7"></font></p><p><font color="#0909f7"></font></p><p><font color="#0909f7"><strong>8楼公式:</strong></font></p><p><font color="#0909f7">=RIGHT(10^10+SUM(MOD(LARGE(MMULT(COLUMN(A:E)^0,LEN(B3:B7)-LEN(SUBSTITUTE(B3:B7,COLUMN(A:J)-1,)))*1000+FIND(COLUMN(A:J)-1,B3&amp;B4&amp;B5&amp;B6&amp;B7&amp;5^19)*10+COLUMN(A:J)-1,ROW(1:10)),10)*10^ROW(1:10))/10,COUNT(FIND(COLUMN(A:J)-1,B3&amp;B4&amp;B5&amp;B6&amp;B7)))</font></p><p><font color="#0909f7">公式中求0-9数字的个数部分很好,和我的思路一样,也正是题目的考点之一</font></p><p><font color="#0909f7">公式写的很好,但是和3楼的公式一样,用了连接单元格的方法,有些取巧,这样就无法突现题目的另一考点。公式正确,送金币。</font></p><p><font color="#0909f7"></font></p><p><font color="#0909f7"></font></p><p><font color="#0909f7"></font></p><p><font color="#0909f7"><strong>我的公式:</strong></font></p><p><font color="#0909f7">=TEXT(SUM(RIGHT(LARGE(ISERR(1/(ROW(1:5)-MATCH("*"&amp;COLUMN(A:J)-1&amp;"*",B3:B7&amp;"",)))*(MMULT(COLUMN(A:E)^0,LEN(B3:B7)-LEN(SUBSTITUTE(B3:B7,COLUMN(A:J)-1,)))*10^6+ROW(1:5)*10^5+FIND(COLUMN(A:J)-1,B3:B7&amp;5^19)/1%+COLUMN(J:S)),ROW(1:10)))*10^ROW(2:11))%,REPT(0,COUNT(MATCH("*"&amp;ROW(1:10)-1&amp;"*",B3:B7&amp;"",))))</font></p><p><font color="#0909f7">本题的考点在于有目的的构造数组,在二维区域中根据“数字出现次数&amp;行数&amp;列数&amp;0-9数字”的方法,构建数字字符串,再用MATCH函数排除0-9中没出现过的数字(这部分用了willin2000老师的一个思路),得到我们想要的数字串。</font></p><p><font color="#0909f7">1.MMULT(COLUMN(A:E)^0,LEN(B3:B7)-LEN(SUBSTITUTE(B3:B7,COLUMN(A:J)-1,))),这部分求出0-9在区域中出现的次数。SUBSTITUTE&nbsp; (B3:B7,COLUMN(A:J)-1,),通过一维纵向数组与一维横向数组运算,得到二维数组。</font></p><p><font color="#0909f7">2.MATCH("*"&amp;COLUMN(A:J)-1&amp;"*",B3:B7&amp;"",),利用MATCH函数精确查找文本时支持通配符的特性查找0-9在区域中第一次出现的位置,同样构造了一个 二维数组。</font></p><p><font color="#0909f7">3.ISERR(1/(ROW(1:5)-MATCH("*"&amp;COLUMN(A:J)-1&amp;"*",B3:B7&amp;"",))),row(1:5)-.....,得到的0是我们想要的,1/0得到#DIV/0!错误,而当0-9中有数字没出现过时,match函数会返回#N/A错误,利用ISERR函数不能处理#N/A错误的特点,将match函数返回的错误结果排除。</font></p><p><font color="#0909f7">4.+COLUMN(J:S),而不是COLUMN(A:J)-1,省了几个字符,同样,(...*10^ROW(2:11))%,也是为了省字符。</font></p><p><font color="#0909f7">5.B3:B7&amp;5^19,可以排除错误值,可以直接将match部分和数字串相乘,省了IF判断,少了一层嵌套。</font></p>
[此贴子已经被作者于2009-10-18 21:01:48编辑过]

本帖子中包含更多资源

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

x
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2009-10-6 16:30 | 显示全部楼层
回复

使用道具 举报

发表于 2009-10-6 21:17 | 显示全部楼层

<p>只要求5期 取个巧</p><p>
游客,如果您要查看本帖隐藏内容请回复
</p>
回复

使用道具 举报

发表于 2009-10-6 21:35 | 显示全部楼层

还是学习一下高手的吧[em06]
回复

使用道具 举报

发表于 2009-10-7 14:39 | 显示全部楼层

<p>楼主高见</p>[em01][em01][em01]
回复

使用道具 举报

发表于 2009-10-7 20:12 | 显示全部楼层

<p>好难,期待答案!!!!!</p>
回复

使用道具 举报

发表于 2009-10-8 00:05 | 显示全部楼层

<p>楼主高见</p><img title="dvubb" align="middle" alt="图片点击可在新窗口打开查看" src="Skins/Default/emot/em01.gif" border="0" complete="complete"/><img title="dvubb" align="middle" alt="图片点击可在新窗口打开查看" src="Skins/Default/emot/em01.gif" border="0" complete="complete"/><img title="dvubb" align="middle" alt="图片点击可在新窗口打开查看" src="Skins/Default/emot/em01.gif" border="0" complete="complete"/><br/>
回复

使用道具 举报

发表于 2009-10-8 18:10 | 显示全部楼层

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

发表于 2009-10-9 19:04 | 显示全部楼层

我是来学习的
回复

使用道具 举报

发表于 2009-10-10 14:10 | 显示全部楼层

<p>学吧。</p>
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 04:57 , Processed in 0.320622 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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