PP-DAX 入门:明明是个数值,为什么还说是文本?又怎么识别出一列中哪些是数值?

小勤:这个数据明明是个数值啊,为什么用函数ISTEXT判断的时候,结果还是TRUE?也就是说这个还是文本?
file
大海:那你这一列不就是文本的格式吗?
小勤:ISTEXT函数难道不是用来判断哪个是真正的文本,哪个实际是个数值的吗?
大海:不是的。在Power Pivot里,ISTEXT函数首先看你这一列数据到底是什么格式的,然后再看其中有没有是空的内容。比如你这个数据里的空内容,它就不是文本:
file
小勤:那ISNUMBER呢?也只能判断那一列是不是数值格式的列?
大海:对的。比如这里,我们用ISNUMBER判断一下,结果都是FALSE:
file
也就是说,如果原来的列属性就是文本,那么无论其中是有数值,还是空,还是本来的文本,都是FALSE。
小勤:那这个有啥用啊?
大海:这不是给你把空值给分出来了吗?
小勤:这倒是。那如果要识别出其中的数值,怎么办?
大海:通过VALUE函数可以将文本类型的数值转换为真正的数值。
小勤:不行啊,一用VALUE,全出错……
file
大海:Power Pivot里对数据的计算有严格的要求,如果一列里面有某个数据计算会导致错误,那整列都会出错。所以我们要做好可能的错误处理,比如这样:
file
小勤:这么麻烦啊?
大海:你把这么乱的数据丢到Power Pivot里,就要有心理准备,Power Pivot的核心是数据的建模和快速的计算分析,而不是去对付你这些乱糟糟的数据。
小勤:对了,其中的日期怎么办?
大海:严格来说,日期也是一个数值,所以也是可以通过VALUE函数转换为数值的。你如果要分开,那要进一步加其他的判断。
小勤:原来这样。看来数据如果不规范,还是得先通过Power Query的相关功能先处理好再放进来好一点儿。
file

大海-Excel到PowerBI