ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

学习数据分离的函数及讨论

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-4-18 11:42 | 显示全部楼层 |阅读模式
小菜鸟
各位前辈,有没有一个函数让B2等于50,C2等于21.6,D2等于3;不用人工一个个输入
11.jpg

中菜鸟  9:56:42
B3=LEFT(A3,2)
C3=MID(A3,3,4)
D3=RIGHT(A3,1)
但有缺陷,要数字的位数不变,如果A3变为115*7*11.6,取数就不对了。


其实最简单也靠谱的做法是把整个A列复制到另外一个表,然后数据分列,间隔符号是*,一列分拆为3列,然后拷回去。


高人 10:14:32
以前有弄过类似的函数,但是比较长,记不住。


中菜鸟  10:15:03
最简单的是数据分列

小菜鸟 10:15:25
貌似可行

高人
10:23:12

b3==--MID(SUBSTITUTE($A3,"*",REPT(" ",99)),COLUMN(A3)*99-98,99)

再拖行到C D列

解决

解决


中菜鸟  10:24:18
果然牛,这个够复杂
高人 10:24:41


中菜鸟  10:27:57
有些函数很少用到,学习一下。

小菜鸟 10:39:41


路人甲 10:50:44
牛,
路人乙 10:54:05学习了牛

高人
10:57:50
我向大家学习了

11:14:24
中菜鸟  11:14:24
学习分析
连减是文本转数值
MID是取字符串中间值
REPT是重复制造99个空格
SUBSTITUTE($A3,"*",REPT(" ",99))是将字符串中的*号置换为99个空格变成如“50    21.6    3”这样很长的字符串,这个必要性还没看懂。
然后COLUMN(A3)是确定取数的次序,B列是第一个,就是取到了1,1*99-98,那还是1,也就是从第一个开始取起,连取99个,即“50“后面有99个空格的一个长字符串(总长度是2+99=101位);
然后通过--运算符,转为数字50
嗯,没问题。

接下来是C3=--MID(SUBSTITUTE($A3,"*",REPT(" ",99)),COLUMN(B3)*99-98,99),变化是词序变为2了,2*99-98=100,从字符串的第100个字符开始取数,但不确定第一个要取的数是几位
哦,看懂为什么要加那么多空格了。
取出来的数是“     21.6   ”
然后又得到了数值21.6


明白了,这么多空格就是因为不确定中间那个数值的字符串的长度,所以就像弄个大的罩子去罩,罩到了很长的一段字符串,然后用--,把空格像水一样筛掉。留下的就是要的“那条小鱼”,我们要的数值。


很巧妙,想出来的人太聪明了!佩服!

路人甲 11:17:16
写程序的人,这个应该是小KS

中菜鸟  11:24:57

这个公式解决了一个通用性,只要代表数字的单段字符串小于99,只要把*号换成其中的任何分隔符,都能适用。


但是,我还是要说一句,哲学中有个“奥康姆剃刀”——由中世纪经院哲学家奥康姆提出。它的基本命题是“如无必要,勿增实体”,即可以用少数几个原理或原则来说明事物的时候,却用了许多的原理或原则,那就是浪费。

解决问题的途径应该尽可能简化,既然数据分列功能可以轻松搞定这个“中间用通用分隔符号的数字字符串”分数问题,何必再去搞这么复杂。浪费脑细胞。

大道至简。

据说爱因斯坦一开始推算出质能转换方程式时,是一个很复杂的算式,用力很多包括广义积分在内的很多高等数学技巧,以及很多限定条件。

然后他又花了很多时间去简化,最后推出“E=MC2”这个小学生都能看懂的公式。

鲁迅也说,文字能减则减,减至不能再减,才能去发表,否则就是在卖弄自己的文学技巧。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-25 04:38 , Processed in 0.034076 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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