对DAX表达式错误值的处理
熟悉了DAX的基本语法之后,要开始学习如何处理DAX的报错。DAX表达式可能包含错误的计算公式因为错误的引用,例如除以0,或者参与计算的列不是数值等。你要学习如何应对这些报错,以及如何解决这些报错问题。
开始学习处理错误之前,先简单介绍一下DAX公式可能出现的错误值:
- 转换错误
- 数据计算错误
- 空值或者缺失值
转换错误
首先介绍的是转换错误。之前的章节介绍了,DAX会根据计算符的要求,对文本和数字进行相互转换。下面的例子是一些正确的转换。
"10" + 32 = 42
"10" & 32 = "1032"
10 & 32 = "1032"
DATE (2010,3,25) = 3/25/2010
DATE (2010,3,25) + 14 = 4/8/2010
DATE (2010,3,25) & 14 = "3/25/201014"
因为处理的都是常数值,这些计算都是正确的。但是,如果是下面这些呢,VatCode是字符串。
SalesOrders[VatCode] + 100
因为第一个参数是一个列,因此在这个案例中,因为它的类型是字符串,因此你必须要确定列中的所有值都可以转换为数值。如果其中某些转换失败了,那系统就会报一个转换错误的错误提示。
"1 + 1" + 0 = Cannot convert value '1+1' of type string to a number
DATEVALUE ("25/14/2010") = Type mismatch
要避免这些错误,需要在DAX代码中添加错误识别逻辑,在防止结果报错,并且返回一个有意义的结果。
网友评论