使用错误的语法编写 DAX公式时,可能会出错.计算字段和计算列可以包含需要特定类型参数的DAX函数. DAX函数的参数可以是表,列或其他DAX函数(嵌套的DAX函数).由于DAX函数可以返回表和列,因此应注意检查正确类型的参数是否传递给DAX函数.
DAX公式错误可以是语法错误或语义错误.错误可能发生在设计时或运行时.
在本章中,您将了解一些常见的DAX错误,其原因以及如何解决这些错误.
DAX错误:计算已中止
尝试创建(设计时)或使用(运行时)计算字段时,可能会发生以下错误DAX时间智能功能.在每种情况下,一个不连续的日期范围被传递给时间智能函数.
"DAX错误:计算中止:MdxScript(实例)(00,0)函数'DATEADD'仅适用具有连续日期选择."
运行时原因
当放置具有DAX时间智能功能的计算字段时,可以显示此错误在数据透视表的VALUES区域中,在选择年份之前,将月份或季度等日期字段选为切片器或过滤器.例如,如果您有三年的数据 - 2014年,2015年和2016年,并且您尝试仅使用月份而不选择"年"字段,那么这些值不是连续的数据值,您将收到错误.
如何在运行时修复错误?
在上面的例子中,
首先将Year添加为切片器或过滤器并选择一年.
然后,将Month或Quarter添加为切片器或过滤器.
然后,选择一个或多个月或四分之一切片或过滤所选年份.
设计时原因
DAX时间智能函数需要为date参数指定日期列.日期列必须具有连续的日期范围.如果日期列中的一行或多行中的日期值与前一行和后续行中的数据值不相邻,则可以返回此错误.
如果导入您的表包含来自数据源的日期,请记住,许多组织运行特殊进程,在数据库中扫描表中的无效值并替换具有特定值的表.也就是说,如果找到无效日期,则会为其分配一个特定日期值,该日期值可能与列中的其他数据值不相邻.
如何在设计时修复此错误?
执行以下操作以在设计时减去错误;
如果您的日期表是从数据源导入的,请使用"在Power Pivot"窗口中刷新以重新导入在源处找到的任何更改.
检查日期中的值列,以确保它们是连续的顺序.如果发现任何值不存在,则必须在源处更正,并且必须刷新日期表.
创建一个数据模型中的单独日期表和日期列.将新日期列指定为导致错误的公式中的日期参数.日期表很容易创建并添加到数据模型.
DAX语义错误 - 示例
以下DAX错误是语义错误 :
"函数'CALCULATE'已在用作表过滤器表达式的true-false表达式中使用.这是不允许的."
原因
当一个或多个过滤器表达式无法在计算字段的上下文中使用或计算出来时,会出现此错误列表达式.
在大多数情况下,此错误是由指定为DAX CALCULATE函数的参数的过滤器表达式引起的. CALCULATE函数需要定义为布尔表达式或表表达式的过滤器.
如何修复此类错误?
您可以使用以下方法修复此类错误DAX FILTER函数将过滤器定义为表表达式,然后可以将其用作DAX CALCULATE函数的参数.
免责声明:以上内容(如有图片或视频亦包括在内)有转载其他网站资源,如有侵权请联系删除