我有3栏销售,利润,数量,我正在计算两个度量sales_per_unit
和profit_per_unit
:
Profit_Per_Unit = DIVIDE(SUM(Orders[Profit]), SUM(Orders[Quantity]))
Sales_Per_Unit = DIVIDE(SUM(Orders[Sales]), SUM(Orders[Quantity]))
我对所有行都得到正确答案,但是总计错误,如下面的屏幕截图所示:
所以我想了解两件事:
编辑
使用Sales_Per_Unit2 = SUMX(Orders, DIVIDE(Orders[Sales],Orders[Quantity]))
可以使我获得预期的总计,但对于某些行却得到了错误的答案,如下图突出显示了
更新
我已经搜索了互联网,人们在条件条件下使用HASONEVALUE函数来筛选出不同的真实上下文公式和不同的虚假上下文公式,因此我也将该公式与@MarcoVos答案结合使用,我在其中的行中得到了空白结果结果有误,但我仍然不了解我在做什么错的完整情况,但是我知道公式是正确的,但是行上下文有问题,所以我想在我的问题中进行更新。
If_Sales = IF(HASONEVALUE(Orders[Sales]),SUMX(Orders, DIVIDE(Orders[Sales], Orders[Quantity])))
答案 0 :(得分:0)
对于您正在使用的DAX表达式总数,现在计算每列总和的除法。
当您希望对行级别的除法结果求和时,需要使用一个迭代函数。在这种情况下为SUMX。像这样:
Sales_Per_Unit = SUMX('Orders', DIVIDE( Orders[Sales], Orders[Quantity] ) )
对于其他行,结果将是相同的,因为那里的filtercontext会将Orders表过滤到一行。