Excel精英培训网

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

[通知] [练习题]数字字符串系列- 2.多行求不重复.

[复制链接]
发表于 2008-4-22 20:32 | 显示全部楼层 |阅读模式
4QOCKO2v.rar (1.98 KB, 下载次数: 41)

[练习题]数字字符串系列- 2.多行求不重复.

[练习题]数字字符串系列- 2.多行求不重复.
发表于 2008-4-22 23:09 | 显示全部楼层

<br/>不动脑筋了,直接套用上次的公式,不知道可以不[em04]<br/>x=EVALUATE(LEFT(TEXT(102030405060708,REPT("A00&amp;",8))&amp;TEXT(9101112131415,REPT("A00&amp;",7)),59))<br/>结果=LEFT(TEXT(SUM((0&amp;MID(x,LARGE(FIND(ROW($1:$10)-1,x&amp;5^19),ROW($1:$10)),1))*10^ROW($1:$10)),REPT(0,11)),COUNT(FIND(ROW($1:$10)-1,x)))<br/><br/>
回复

使用道具 举报

发表于 2008-4-23 02:04 | 显示全部楼层

<p><font size="2">X</font><font size="2">=CONCATENATE($A$1,$A$2,$A$3,$A$4,$A$5,$A$6,$A$7,$A$8,$A$9,$A$10,$A$11,$A$12,$A$13,$A$14,$A$15)</font></p><p><font size="2">=LEFT(IF(LEFT(x)="0",0,)&amp;SUM((0&amp;MID(x,LARGE(FIND(ROW(1:10)-1,x&amp;5^19),ROW(1:10)),1))*10^ROW(1:10)),COUNT(FIND(ROW(1:10)-1,x)))</font></p>
回复

使用道具 举报

 楼主| 发表于 2008-4-23 09:16 | 显示全部楼层

请大家再考虑一下公式的适应性,适合A列有很多行的情况比如1000行.
回复

使用道具 举报

发表于 2008-4-24 02:01 | 显示全部楼层

<p>不对再想想!</p>[em04][em04][em04]
[此贴子已经被作者于2008-4-24 2:03:06编辑过]
回复

使用道具 举报

发表于 2008-4-24 10:20 | 显示全部楼层

<p>好久不函数咯,大家的函数功力现在太高了,我试试手吧,没怎么优化,算个思路吧。[em04]</p><p></p><div class="HtmlCode"><p>x=MATCH("*2"&amp;ROW($10:$19),SMALL(--((ROW($1:$15)*100+COLUMN($A:$T))&amp;"21"&amp;MID($A$1:$A$15,COLUMN($A:$T),1)),ROW($1:$300))&amp;"",)*10+ROW($10:$19)</p></div><strong><em><font face="Tahoma" style="BACKGROUND-COLOR: #fdfddf;"><div class="HtmlCode"><strong><em><font face="Tahoma" style="BACKGROUND-COLOR: #fdfddf;">=TEXT(SUM(RIGHT(LARGE(IF(ISERROR(x),,x),ROW(1:10)))*10^(ROW(1:10)-1)),REPT(0,COUNT(x)))</font></em></strong></div></font></em></strong>
回复

使用道具 举报

发表于 2008-4-24 17:29 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>knifefox</i>在2008-4-24 10:20:00的发言:</b><br/><p>好久不函数咯,大家的函数功力现在太高了,我试试手吧,没怎么优化,算个思路吧。[em04]</p><p></p><div class="HtmlCode"><p>x=MATCH("*2"&amp;ROW($10:$19),SMALL(--((ROW($1:$15)*100+COLUMN($A:$T))&amp;"21"&amp;MID($A$1:$A$15,COLUMN($A:$T),1)),ROW($1:$300))&amp;"",)*10+ROW($10:$19)</p></div><strong><em><font face="Tahoma" style="BACKGROUND-COLOR: #fdfddf;"><div class="HtmlCode"><strong><em><font face="Tahoma" style="BACKGROUND-COLOR: #fdfddf;">=TEXT(SUM(RIGHT(LARGE(IF(ISERROR(x),,x),ROW(1:10)))*10^(ROW(1:10)-1)),REPT(0,COUNT(x)))</font></em></strong></div></font></em></strong></div><p>&nbsp;&nbsp;&nbsp;&nbsp; </p>[em17][em17]太强拉,好好消化下先,看能不能搞懂!
回复

使用道具 举报

发表于 2008-4-25 00:16 | 显示全部楼层

太深奥了,看 不懂..
回复

使用道具 举报

 楼主| 发表于 2008-4-25 09:03 | 显示全部楼层

<div class="msgheader">QUOTE:</div><div class="msgborder"><div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>hai</i>在2008-4-24 17:29:00的发言:</b>[em17][em17]太强拉,好好消化下先,看能不能搞懂!</div><b></b></div><div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>小聪</i>在2008-4-25 0:16:00的发言:</b><br/>太深奥了,看 不懂..</div><p>与单个单元格的总体思路相似, 额外要考虑的是:<br/>1.MID得到的数字需要含行列特征.(练习点1)<br/>2.调整查找方式,将FIND改成MATCH("*"&amp;..., 以适应在含行列特征的数字串中查帐0/9数字.(练习点2)</p><p>将刀兄的公式中2改成4000后(*100作相应改变),就容易理解了, 因为有20个字符,20*4000=80000,而03版EXCEL最大行65536.由于限定一个定义名称,需要用ROW(1:20*行数) (练习点3), 所以超过4000行无解(目前我是这样认为的),所以4000是唯一性的. 这也是要求公式"适应很多行"而不是整个A列, 而举例说的"1000行",没说3000行左右的数是为了避免透露SMALLL(...ROW(1:20*行数)).</p><p>&nbsp;</p><div class="msgheader">QUOTE:</div><div class="msgborder"><b>以下是引用<i>knifefox</i>在2008-4-24 10:20:00的发言:</b><br/><p>好久不函数咯,大家的函数功力现在太高了,我试试手吧,没怎么优化,算个思路吧。[em04]<strong><em><font face="Tahoma" style="BACKGROUND-COLOR: #fdfddf;"></font></em></strong></p></div>刀兄的公式优化得比我好.
[此贴子已经被作者于2008-4-25 9:29:47编辑过]
回复

使用道具 举报

发表于 2008-4-25 10:05 | 显示全部楼层

<p>最近半年有点忙,好久没有研究excel了,也疏忽了论坛的管理,前天看到你这两道题确实不错。这道题花了我一晚上时间哦,非常不错的题目,期待有更多类似好帖。</p><p>S:思路应该就是这样的,但是公式肯定不止这一个,所以希望大家积极参与,大家的积极参与出题者才有出题的动力。</p><p></p>
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 19:01 , Processed in 0.279646 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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