ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: adidas999

[已解决] 如何去掉单元格重复数字

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-2-14 21:33 | 显示全部楼层
本帖已被收录到知识树中,索引项:MID
好公式 ,收藏了。

TA的精华主题

TA的得分主题

发表于 2011-2-14 21:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 12楼 wangg913 的帖子

看不懂,只能用F9慢慢看,但不知后面加上1除以7、17是什么意思?

TA的精华主题

TA的得分主题

发表于 2011-2-14 22:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 galz01 于 2011-2-14 21:39 发表
看不懂,只能用F9慢慢看,但不知后面加上1除以7、17是什么意思?

1/17中包含全部0~9
A1&1/17意义在于补全A1所缺的数,在find时不至于出错,用A1&(row(1:10)-1)亦可

[ 本帖最后由 chinjingo 于 2011-2-14 22:39 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-2-14 22:37 | 显示全部楼层
原帖由 swyrlbq 于 2011-2-14 14:48 发表
=MID(SUM(MID(A1&1/7,SMALL(FIND(ROW($1:$10)-1,A1&1/17),ROW($1:$10)),1)/10^ROW($1:$10)),3,MIN(6,COUNT(FIND(ROW($1:$10)-1,A1))))
一、A1&1/17="755087.391270.0588235294117647",1/17是16位循环小数, 这样连接,保证0-9各个数字都能查到,不至于出错。
二、ROW($1:$10)-1,生成0-9的数组,作为FIND的第一个参数。
三、FIND(ROW($1:$10)-1,A1&1/17)查找0-9各个数字在A!&1/17的位置,
={4;10;11;8;24;2;28;1;5;9}
四、SMALL(FIND(ROW($1:$10)-1,A1&1/17),ROW($1:$10))依次排列这些数字在A1&1/17从前到后的位置。
={1;2;4;5;8;9;10;11;24;28}
五、MID(A1&1/7,SMALL(FIND(ROW($1:$10)-1,A1&1/17),ROW($1:$10)),1)=MID(A1&1/7,{1;2;4;5;8;9;10;11;24;28},1),很明显,是把A1&1/17中的从前向后不重复的位置。0-9的数字一些一个提取出来。={"7";"5";"0";"8";"3";"9";"1";"2";"8";"4"}
六、10^ROW($1:$10),就是10的1-9次幂{10;100;1000;10000;100000;1000000;10000000;100000000;1000000000;10000000000}
七、用这个数组做"7";"5";"0";"8";"3";"9";"1";"2";"8";"4"做除数,文本也转化成数字,分别得到{0.7;0.05;0;0.0008;0.00003;0.000009;0.0000001;0.00000002;0.000000008;0.0000000004},
八、用sum函数加起来,各个数字的位置刚好错开。=0.7508391284,这就成了MID函数的第一参数:文本字符,
九、MID的第二个参数是公式中的3,因为有一"0.",所以从第三位提取。
十、Mid的最后一参数是提取几位,要求是6位,可是为什么用MIN(6,COUNT(FIND(ROW($1:$10)-1,A1)))这个公式,这 个公式表示最大取6位,少于6位,有几位取几位,COUNT(FIND(ROW($1:$10)-1,A1))中FIND(ROW($1:$10)-1,A1))查找 A1中0-9各数第一次出现的位置,如果没有,返回错{4;10;11;8;#VALUE!;2;#VALUE!;1;5;9},
  =MID(0.7508391284,3,6),结果为750839

解释得不错,

TA的精华主题

TA的得分主题

发表于 2011-2-14 23:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 swyrlbq 于 2011-2-14 14:48 发表
真是深奥奇妙的公式。仰慕。
我对大头版主公式的解释:原公式:
=MID(SUM(MID(A1&1/7,SMALL(FIND(ROW($1:$10)-1,A1&1/17),ROW($1:$10)),1)/10^ROW($1:$10)),3,MIN(6,COUNT(FIND(ROW($1:$10)-1,A1))))
一、A1&1/17 ...

发帖解释公式是深入理解公式的非常好的方法,我有时也这样做,与人与已都有好处,两全其美。

TA的精华主题

TA的得分主题

发表于 2011-2-15 00:43 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 Jdtax 于 2011-2-12 23:22 发表
=SUM(MID(SUBSTITUTE(A1,".",),SMALL(IF(MATCH(MID(SUBSTITUTE(A1,".",)&5^19,ROW($1:$15),1),MID(SUBSTITUTE(A1,".",)&5^19,ROW($1:$15),1),)=ROW($1:$15),ROW($1:$15)),ROW($1:$6)),1)*10^(6-ROW($1:$6)))
数组公 ...

嘿嘿,侄子好帅啊!
小猪果然出手了。

TA的精华主题

TA的得分主题

发表于 2011-2-15 07:40 | 显示全部楼层
=SUM(RIGHT(SMALL(FIND(ROW(1:10)-1,A1&1/17)*100+ROW(1:10)-1,ROW(1:6)))*10^(6-ROW(1:6)))数组公式

TA的精华主题

TA的得分主题

发表于 2011-2-15 08:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 swyrlbq 于 2011-2-14 14:48 发表
五、MID(A1&1/7,SMALL(FIND(ROW($1:$10)-1,A1&1/17),ROW($1:$10)),1)=MID(A1&1/7,{1;2;4;5;8;9;10;11;24;28},1),很明显,是把A1&1/17中的从前向后不重复的位置。0-9的数字一些一个提取出来。={"7";"5";"0";"8";"3";"9";"1";"2";"8";"4"}


這一步實際上大頭版主是用1/7,所以解釋上稍有不同,也精簡了一字元

不過總思維類似,此不再贅述

TA的精华主题

TA的得分主题

发表于 2011-2-15 08:48 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-2-15 09:36 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习了!Excel好强大!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 21:54 , Processed in 0.044673 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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