美文网首页工作生活DAX从入门到精通
DAX从入门到精通 4-2-2 在度量值中使用列

DAX从入门到精通 4-2-2 在度量值中使用列

作者: PowerBI入门到实践 | 来源:发表于2019-07-04 21:19 被阅读0次

第二个案例,和之前的有一些轻微的不同。现在不是在计算列,而是在度量值中要计算毛利润。你有一个销售额列,有一个成本列,你可能会这样写:

[GrossMargin] := Sales[SalesAmount] - Sales[ProductCost]

如果你写了这样一个度量值,你会得到什么结果
1.表达式正常工作,可以在报表中使用。
2.会得到一个错误,整个公式不能用。
3.你可以定义这个公式,但是在使用的时候会报错。
和之前一样,停下来,思考一下答案,然后再读下面的解释。

函数中,我们使用salesamount,代表计算列,也就是,sales表的销售额列。但是,这个定义,有缺少什么吗?回想一下,从前面的讨论中,缺少的信息是我们要从哪行来如何取得salesamount。当你在计算列中使用这个代码,DAX知道使用哪行来计算表达式,这多亏了行上下文。但是,用于度量值的时候,会发生什么?度量值计算没有迭代机制,所以就没有当前行,也就是,没有行上下文。
因此,第二个答案是对的。你不能书写这个函数,这个是个语法的错误,当你输入这个的时候,会报错。
记得,列本身并没有一个值。但是,列的每行都有值。因此,如果你要一个单一的值,你需要选择特定的行计算。要指定使用哪行,唯一的方法是使用行上下文。因为度量值中没有行上下文,这个公式会错误,然后DAX引擎会拒绝它。
在度量值中,这个函数的正确使用方法是使用聚合函数。

[GrossMargin] := SUM ( Sales[SalesAmount] ) - SUM ( Sales[ProductCost] )

使用这个函数,你使用sum这个聚合函数。因此,后面我们这个函数不依赖于行上下文。它只需要筛选上下文,然后就得到了结果。

相关文章

  • DAX从入门到精通 4-2-2 在度量值中使用列

    第二个案例,和之前的有一些轻微的不同。现在不是在计算列,而是在度量值中要计算毛利润。你有一个销售额列,有一个成本列...

  • 2.3 变量入门

    第2章 DAX简介 2.1 理解DAX计算2.2了解计算列和度量值2.3 变量入门2.4 DAX表达式中的错误处理...

  • 2.2了解计算列和度量值

    第2章 DAX简介 2.1 理解DAX计算2.2了解计算列和度量值2.3 变量入门2.4 DAX表达式中的错误处理...

  • 2.1 理解DAX计算

    第2章 DAX简介 2.1 理解DAX计算2.2了解计算列和度量值2.3 变量入门2.4 DAX表达式中的错误处理...

  • 2.4 表达式中的错误处理

    第2章 DAX简介 2.1 理解DAX计算2.2了解计算列和度量值2.3 变量入门2.4 表达式中的错误处理2.5...

  • 2.7 使用常见的DAX函数

    第2章 DAX简介 2.1 理解DAX计算2.2了解计算列和度量值2.3 变量入门2.4 表达式中的错误处理2.5...

  • 2.5 格式化DAX代码

    第2章 DAX简介 2.1 理解DAX计算2.2了解计算列和度量值2.3 变量入门2.4 表达式中的错误处理2.5...

  • 2.6 聚合函数和迭代函数

    第2章 DAX简介 2.1 理解DAX计算2.2了解计算列和度量值2.3 变量入门2.4 表达式中的错误处理2.5...

  • DAX从入门到精通 2-2-1 学习度量值和计算列

    学习度量值和计算列 现在你已经了解了DAX的基础语法,可以开始学习DAX中的一个重要知识:计算列和度量值的区别。第...

  • Power BI基础:理解度量值和计算列

    度量值和计算列都使用 DAX , 区别在于计算上下文: 度量值在可视化的上下文中或在 DAX 查询的上下文中计算:...

网友评论

    本文标题:DAX从入门到精通 4-2-2 在度量值中使用列

    本文链接:https://www.haomeiwen.com/subject/gxydhctx.html