Excel DAX – 公式错误

Excel DAX – 公式错误


使用错误的语法编写DAX 公式时可能会出错计算字段和计算列可以包含需要特定类型参数的 DAX 函数。DAX 函数的参数可以是表、列或其他 DAX 函数(嵌套 DAX 函数)。由于 DAX 函数可以返回表和列,因此应注意检查传递给 DAX 函数的参数类型是否正确。

DAX 公式错误可以是语法错误或语义错误。错误可能发生在设计时或运行时。

在本章中,您将了解一些常见的 DAX 错误、它们的原因以及如何修复这些错误。

DAX 错误:计算中止

尝试使用 DAX 时间智能函数创建(设计时)或使用(运行时)计算字段时,可能会发生以下错误。在每种情况下,都会将不连续的日期范围传递给时间智能函数。

“DAX 错误:计算中止:MdxScript(实例)(00, 0)函数‘DATEADD’仅适用于连续的日期选择。”

运行时的原因

如果将具有 DAX 时间智能函数的计算字段放置在数据透视表的 VALUES 区域中,并且在选择年份之前选择月份或季度等日期字段作为切片器或过滤器,则会显示此错误。例如,如果您有三年(2014 年、2015 年和 2016 年)的数据,并且您尝试仅使用三月而不选择年字段,则这些值不是连续的数据值,您将收到错误消息。

如何在运行时修复错误?

在上面的例子中,

  • 首先添加年份作为切片器或过滤器,然后选择一年。

  • 然后,添加 Month 或 Quarter 作为切片器或过滤器。

  • 然后,选择一个或多个月份或季度以对所选年份进行切片或筛选。

设计时的原因

DAX 时间智能函数需要为日期参数指定一个日期列。日期列必须具有连续的日期范围。如果日期列中的一行或多行中的日期值与前一行和后续行中的数据值不连续,则可能会返回此错误。

如果您从数据源导入包含日期的表,请记住,许多组织运行特殊过程,扫描数据库中的表中的无效值并将其替换为特定值。也就是说,如果发现无效日期,则会为其分配一个特定日期值,该值可能与列中的其他数据值不连续。

如何在设计时修复此错误?

执行以下操作以在设计时修复错误 –

  • 如果您的日期表是从数据源导入的,请使用 Power Pivot 窗口中的刷新来重新导入在源中找到的任何更改。

  • 检查日期列中的值以确保它们按连续顺序排列。如果发现任何值不合适,则必须在源头进行更正,并且必须刷新日期表。

  • 在您的数据模型中创建一个单独的日期表和日期列。在导致错误的公式中将新日期列指定为日期参数。日期表很容易创建并添加到数据模型中。

DAX 语义错误 – 示例

以下 DAX 错误是语义错误 –

“在用作表过滤器表达式的真假表达式中使用了函数 ‘CALCULATE’。这是不允许的。”

原因

当一个或多个过滤器表达式无法在计算字段或计算列表达式的上下文中使用时,可能会出现此错误。

在大多数情况下,此错误是由指定为 DAX CALCULATE 函数参数的过滤器表达式引起的。CALCULATE 函数需要定义为布尔表达式或表表达式的过滤器。

如何修复此类错误?

您可以通过使用 DAX FILTER 函数将过滤器定义为表表达式来修复此类错误,然后可以将其用作 DAX CALCULATE 函数的参数。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁