【问题标题】:How to refer to a single value in a Calculated Column in a measure (DAX)如何在度量 (DAX) 中引用计算列中的单个值
【发布时间】:2016-06-21 03:50:18
【问题描述】:

我有一个表(Data_all),它在一个表中计算 daycount_ytd。

[Date] is in Date Format. 
[Fiscal Year] is just year. eg: 2016

Calculated Column
daycount_ytd=DATEDIFF("01/01/"&[Fiscal Year],Data_all[Date],day)+1

我正在尝试创建一个引用此计算列的度量

Measure:
Amt_X Yield %:=[Amt X]/([Amt Y]/365* (Data_all[DayCount_YTD]))

我收到 Data_all[DayCount_YTD] 引用值列表的错误。 如何在不使用聚合函数的情况下过滤表达式以获得单个值,例如:(总和,中位数)?

或者,是否有其他方法可以实现相同的计算?

【问题讨论】:

    标签: calculated-columns powerpivot dax measure


    【解决方案1】:

    您已经了解了 DAX 中的一个基本概念,一旦您弄清楚如何处理它,该解决方案就会泛化到大量场景。

    基本上,您不能只将列传递到 DAX 度量而不将它们包装在其他东西中 - 通常是某种数学运算,或者您可以使用 VALUES() ,具体取决于您要执行的操作。

    如果您在 PIVOT 中以日期作为行标签使用此度量,则该度量将正常工作:

    =
      SUM ( data_all[Amt X] )
       / (
          SUM ( data_all[Amt Y] ) / 365
          * MAX ( data_all[daycount_ytd] )
          )
    

    但是你会看到它给你一个不正确的总数,因为它是整个事情的最新数据。您需要的是一个迭代行然后执行计算以求和或平均每个项目的版本。有一整类 DAX 函数专用于此,例如 SUMX、AVERAGEX 等。您可以阅读更多关于它们的信息here

    我并不完全清楚你的“总数”背后的数学应该是什么,但以下度量会计算每天的值并将它们加在一起:

    =
      SUMX(
          VALUES(data_all[date]), 
             SUM(data_all[Amt X]) / 
             (SUM(data_all[Amt Y]) / 365 * MAX(data_all[daycount_ytd]))
           )
    

    【讨论】:

    • 感谢您的回复,但是公式实际上是用于百分比计算,所以我认为我无法将每天的值相加。
    • 我使用 values() 结合另一个表(单行)来进行最后的计算。
    猜你喜欢
    • 2023-02-08
    • 1970-01-01
    • 2023-03-05
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-16
    相关资源
    最近更新 更多