DAX Power Pivot 中的数据分析表达式( 三 )


但是,由于公式可以处理整个表和列,因此您需要设计与在 Excel 中不同的计算 。

  • 通常,列中的 DAX 公式始终应用于列中的整个值集(而不是仅应用于几个行或单元格) 。
  • Power Pivot 中表的每一行必须始终具有相同的列数,并且一列中的所有行必须包含相同的数据类型 。
  • 在通过关系连接多个表时,您应该确保用作键的两列对于大多数部分具有匹配的值 。因为 Power Pivot 不强制引用完整性,所以,当键列中具有不匹配的值时,仍有可能创建关系 。但是,空值或不匹配的值可能影响公式的结果和数据透视表的外观 。有关详细信息,请参阅 Power Pivot 公式中的查找 。
  • 使用关系链接表时,可以扩大计算公式的范围(或“下文”) 。例如,数据透视表中的公式可能受该数据透视表中任何筛选器或者列和行标题的影响 。您可以编写处理上下文的公式,但上下文还可能以各种意外方式导致结果发生变化 。有关详细信息,请参阅 DAX 公式中的上下文 。
更新公式的结果
数据刷新”和“重新计算”是两个各自独立而又有相关性的操作,在设计包含复杂公式、大量数据或从外部数据源获取的数据的数据模型时,应了解这两项操作 。
“刷新数据”是用外部数据源的新数据更新工作簿中数据的过程 。您可以按指定的时间间隔手动刷新数据 。或者,如果您已将工作簿发布到 SharePoint 网站,则可以从外部源安排自动刷新 。
重新计算是对公式结果进行更新的过程,用于反映对公式本身的任何更改以及基础数据中的那些更改 。重新计算会以下列方式影响性能:
  • 对于计算列,每次更改公式时,应始终针对整个列重新计算公式的结果 。
  • 对于度量,在将度量放到数据透视表或数据透视图的上下文中之前,不对公式的结果进行计算 。在更改可影响数据筛选器的任何行或列标题时,或在手动刷新数据透视表时,也会重新计算公式 。
公式疑难解答
编写公式时出错
如果定义公式时遇到错误,公式中可能包含语法错误语义错误计算错误
语法错误是最容易解决的 。此类错误通常涉及缺少括号或逗号 。有关各个函数的语法的帮助,请参阅“DAX 函数参考” 。
当语法正确而值或列引用对公式上下文无意义时,就会发生其他类型的错误 。以下任何问题都可能导致此类语义和计算错误:
  • 公式引用了非现有的列、表或函数 。
  • 公式看起来是正确的,但当数据引擎提取数据时找到的类型却不匹配,从而引发错误 。
  • 公式为函数传递的数字或参数类型不正确 。
  • 公式引用了另一个出错的列,因此它的值无效 。
  • 公式引用了尚未处理的列,这意味着虽然它具有元数据,但没有用于计算的实际数据 。
在前四种情况下,DAX 会标记包含无效公式的整个列 。在最后一种情况下,DAX 灰显该列来指示该列处于未处理状态 。
对列值进行排名或排序时,结果不正确或异常
对包含值 NaN (非数字)的列进行排名或排序时,可能会获得不正确或意外的结果 。例如,当计算 0 除以 0 时,返回结果 NaN 。
这是因为公式引擎通过比较数值来执行排序或排名;但是 NaN 却无法与该列中的其他数字进行比较 。
为了确保结果正确,您可以利用使用 IF 函数的条件语句来测试 NaN 值并返回数字 0 值 。

猜你喜欢