|
本帖最后由 流浪铁匠 于 2019-6-10 22:05 编辑
在excel里,文本型数字和真数值是两种完全不同的数据类型,这点相信很多童鞋都已经清楚了
而在把文本型数字转化为数值时,函数公式里通常使用- -(一对负号,称为减负运算)(或者+0,*1)或value函数来处理
目前来说由于前者写法简单更为常见。不过,在一些特殊情况下,单独的减负运算不如value:
当数据录入不规范在日期或时间前录入多余空格时,value可以识别忽略多余空格直接转化为真日期但四则运算不行
这个情况下- - 需要配合trim清除多余空格才能解决(测试下除这类特殊情况,通常- - 优于value,因为简洁)
好了,关于这2个转化方式就聊到这里,因为这篇文章的重点不是这2个,而是value的衍生函数,2013新增的numbervalue
之所以要提及这个函数,是因为测试下这个函数的一些性质是前面这2个转化方式都不具备的,在一些特殊情况下有奇效
1)numbervalue自带清洗部分非打印字符的能力
numbervalue可以直接清楚数字字符串两端的多余不可见字符char(9),char(13),char(10),注意只能清除存在单个非打印字符的情况
这个能力弱于clean(注意是文本函数需配合减负运算等把结果转化为数值),但对新手来说这个函数处理常规的软件导出数据足以
2)numbervalue自带将空格等少数不规范文本强制转化为0的能力
这个函数的性质很有意思,能把单元格内单独存在的空文本(""),空格(char(32)),半角逗号,百分号,char(9),char(10),char(13) 这7种直接识别为0
如果对于excel有一定了解的伙伴都会知道,空文本与空格等在进行四则运算时都会报错,故存在数据源混合这类字符的单元格时要用函数批量转化为数值计算,
需要使用 0&,clean,text等把这些字符前进行处理才能直接计算,不过有了这个函数就可以直接统计了
上面截图的a列数据由于存在多种不规范数据,直接减负运算必然报错
熟悉各种字符对运算影响的童鞋就会连续使用- -配合0&再配合clean(最简处理手段)的方式将这几种干扰因素解决,但新手肯定是不理解作用的,生搬硬套下数据源变化可能就不适合了
但numbervalue一个函数就可以直接处理这几种情况下的数据,直接转化为数值0
3)处理欧式数字格式
并不是所有国家的数字格式都是 千分位为逗号,小数位为点
欧洲部分国家的数字写法的千分位和小数位符号是有较大差异的,请参考截图(数字写法是百度的,仅用于函数功能说明,如有错漏敬请谅解)
当然,对函数高手来说这个函数字符数过多是最大缺陷,但对于新手来说,这个函数可以清洗多种--与value无法直接解决的文本数字情况,而且新手不清楚哪种情况使用什么方式处理,因此还是有一定价值的
|
评分
-
6
查看全部评分
-
|