ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第58期]单元格倒取不重复数字[结题]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2010-3-14 09:48 | 显示全部楼层 |阅读模式
+++++++++++++++++
A列数据是数字,数字较长,但最长不超过60个字节,长度个个不等,即LEN(A1)<60。
要求用公式从后向前取不重复数字。
假设
A1=576611588802736850460313404533
计算后
B1=354016872
======================================================================================
要求:
1、用公式解决,不能用VBA。
2、不使用辅助单元格。
3、不使用迭代。
4、公式随意下拉,不能出现错误。
5、不能使用名称。
6、确保公式能在EXCEL 2003运行。
=======================================================================================
评分标准:

一、如果有两个不同思路的解且完全正确,两分技术;
    如果有个一解,但公式长度基本最短,两分技术;
    单个解且正确,一分技术;
二、公式下拉有错误,但思路巧妙,30分积分。

========================================================================================
初次组织竞赛题,有点手忙脚乱,开始要求可能没有说清楚。
现给大家一天时间,我2010-4-24早上结题评分。请勿忘记最后期限。
========================================================================================
答案:
1、
=MID(SUM(LEFT(RIGHT(9&A1,SMALL(MATCH(COLUMN(A:J)-1&"*",RIGHT(1/17&A1,ROW($1:$78)),),COLUMN(A:J))))/10^COLUMN(A:J))&0,3,COUNT(FIND(COLUMN(A:J)-1,A1)))
2、
=MID(SUM(MID(0&A1,LARGE(MOD(SMALL((MID(A1,ROW($1:$60),1)=COLUMN(A:J)-1&"")*ROW($1:$60)+COLUMN(A:J)/1%,COLUMN(A:J)*60),100),COLUMN(A:J))+1,1)/10^COLUMN(A:J))&0&0,3,COUNT(FIND(COLUMN(A:J)-1,A1)))
户名
积分合计
技术分合计
aa7701914
50
 
alwstr
50
 
amulee
30
2
chenhh803
 
 
donghan
30
2
ff8feng
30
 
fjrlgj
50
 
hyc2222
 
2
kkitt
 
1
lb_bn
 
1
lgcmeli
30
 
liuguansky
40
 
liulangbaby
30
 
lzzgzby
60
 
moon2778
20
1
mxqchina
30
 
smupsu
30
 
syz105729913
30
1
vivill
 
 
wddn
 
1
weifaxiang
 
1
wjh619993018
 
1
wshcw
 
2
xiongkehua2008
50
 
zm0115
30
 
东方之珠0
50
 
冻豆腐
30
2
风冷
30
 
杏花雨V翟
50
 
总计
750
17


[ 本帖最后由 wangg913 于 2010-4-27 07:31 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-14 10:14 | 显示全部楼层
其实用vba是一个很好的办法,思路还清晰,省的一大推数据在单元格里很易出错的

TA的精华主题

TA的得分主题

发表于 2010-3-14 15:02 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大头想法就是多啊

公式

=IF(--RIGHT(A1),"",0)&MID(0&SUM((MID(0&A1,LARGE(IF((MID(A1,60-ROW($1:$59),1)<>"")*(MATCH(MID(A1,60-ROW($1:$59),1),MID(A1,60-ROW($1:$59),1),)=ROW($1:$59)),61-ROW($1:$59),1),ROW($1:$10)),1))*10^(11-ROW($2:$11))),2,IF(--RIGHT(A1),COUNT(FIND(ROW($1:$10)-1,A1)),COUNT(FIND(ROW($1:$10)-1,A1))-1))

数组,290字符(包括=号)

[ 本帖最后由 lgcmeli 于 2010-3-26 12:01 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-17 22:27 | 显示全部楼层
=left(sum(mid(right(rept("0123456789",6)&a1,60),large(large((--mid(right(rept("0123456789",6)&a1,60),column(a:bh),1)=row($1:$10)-1)*column(a:bh)+100*row($1:$10),601-row($1:$10)*60)-100*row($1:$10),row($1:$10)),1)*10^(10-row($1:$10))),count(find(row($1:$10)-1,a1)))

抛砖引玉吧。。。大头莫要笑我啰嗦。

[ 本帖最后由 smupsu 于 2010-3-30 20:24 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-18 09:42 | 显示全部楼层
这道题让我想起来大头的一个帖子,我跟一哥们儿胡搅蛮缠说人家是硬数的,结果现在做题倒用了他的思路。

TA的精华主题

TA的得分主题

发表于 2010-3-23 23:12 | 显示全部楼层
162个字符,数组公式
=MID(10^12+SUM(RIGHT(LARGE(MATCH(ROW($1:$10)-1&"",MID(5^19&A1,100-ROW($1:$99),1),)*10+ROW($1:$10)-1,ROW($1:$10)))*10^ROW($1:$10)),3,COUNT(FIND(ROW($1:$10)-1,A1)))

[ 本帖最后由 冻豆腐 于 2010-3-24 13:29 编辑 ]

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-24 11:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
大頭兄,煩請查收附檔中答案........

[ 本帖最后由 xiongkehua2008 于 2010-3-24 20:10 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-24 12:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
考虑尾数是0情况
B1
=IF(--RIGHT(A1),"",0)&SUM(10^(COUNT(FIND(ROW($1:$10)-1,A1))-ROW(INDIRECT("1:"&COUNT(FIND(ROW($1:$10)-1,A1)))))*RIGHT(LARGE(MMULT(--ISNUMBER(FIND(ROW($1:$10)-1,RIGHT(A1,COLUMN(A:BH)))),ROW($1:$60)^0)*10+ROW($1:$10)-1,ROW(INDIRECT("1:"&COUNT(FIND(ROW($1:$10)-1,A1)))))))

数组公式。字符268(含等号)完成。

不考虑尾数是0(247字符)
=SUM(10^(COUNT(FIND(ROW($1:$10)-1,A1))-ROW(INDIRECT("1:"&COUNT(FIND(ROW($1:$10)-1,A1)))))*RIGHT(LARGE(MMULT(--ISNUMBER(FIND(ROW($1:$10)-1,RIGHT(A1,COLUMN(A:BH)))),ROW($1:$60)^0)*10+ROW($1:$10)-1,ROW(INDIRECT("1:"&COUNT(FIND(ROW($1:$10)-1,A1)))))))

[ 本帖最后由 mxqchina 于 2010-4-23 10:19 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-24 18:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=RIGHT(0&SUM(MOD(LARGE((MATCH(CODE(RIGHT(A1,ROW($1:$60))),CODE(RIGHT(A1,ROW($1:$60))),)=ROW($1:$60))*(ROW($1:$60)*10+CODE(RIGHT(A1,ROW($1:$60)))-48),ROW($1:$60)),10)*10^ROW($1:$60)/10),COUNT(FIND(ROW($1:$10)-1,A1)))
好象长了些。 215字符
再想想吧

这个思想不错,哈哈
=IF(RIGHT(A1)="0",0,"")&SUM((0&MID(A1,SMALL(IF(ISERR(FIND(MID(A1,ROW($1:$59),1),MID(A1,ROW($2:$60),60-ROW($1:$59)))),ROW($1:$59),60),ROW($1:$10)),1))*10^ROW($1:$10)/10) 168字符
再想想吧。
=IF(AND(LEN(A1)>1,RIGHT(A1)="0"),0,)&SUM((0&MID(A1,LEN(A1)+1-LARGE((MATCH(CODE(RIGHT(A1,ROW($1:$60))),CODE(RIGHT(A1,ROW($1:$60))),)=ROW($1:$60))*ROW($1:$60),ROW($1:$10)),1))*10^ROW($1:$10)/10)
单0出错,第二个修改
=IF(AND(LEN(A1)>1,RIGHT(A1)="0"),0,)&SUM((0&MID(A1,SMALL(IF(ISERR(FIND(MID(A1,ROW($1:$59),1),MID(A1,ROW($2:$60),60-ROW($1:$59)))),ROW($1:$59),60),ROW($1:$10)),1))*10^ROW($1:$10)/10)

暂时三种思路,见附件。
=IF(OR(A1={0,"0"},RIGHT(A1)<>"0"),,0)&SUM((0&MID(A1,SMALL(IF(ISERR(FIND(MID(A1,ROW($1:$59),1),MID(A1,ROW($2:$60),59))),ROW($1:$59),60),ROW($1:$10)),1))*10^ROW($1:$10)/10)完善下。真不好做,这个题目。

最后确定,改的面目全非了:
=IF(AND(LEN(A1)>1,RIGHT(A1)="0"),0,)&SUM((0&MID(A1,SMALL(IF(ISERR(FIND(MID(A1,ROW($1:$59),1),MID(A1,ROW($2:$60),59))),ROW($1:$59),60),ROW($1:$10)),1))*10^ROW($1:$10)/10)

[ 本帖最后由 liuguansky 于 2010-3-28 21:59 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2010-3-24 20:14 | 显示全部楼层

公式有点长哟...

再发一个有2个解法的,看到底能不能混1分.


[ 本帖最后由 东方之珠0 于 2010-4-15 10:20 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-3-28 19:45 , Processed in 0.053937 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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