我有一个表(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]引用值列表的错误。 如何在不使用聚合函数的情况下过滤表达式以获得单个值,例如:(sum,median)?
或者,是否有其他方法可以实现相同的计算?
答案 0 :(得分:0)
你已经在DAX中找到了一个基本概念,一旦你找到了处理它的方法,那么解决方案就可以推广到各种场景。
基本上你不能只是将列传递给DAX度量而不将它们包含在其他东西中 - 通常是某种数学运算,或者你可以使用VALUES(),具体取决于你想要做什么。
如果您在日期作为行标签的PIVOT中使用它,此测量将正常工作:
=
SUM ( data_all[Amt X] )
/ (
SUM ( data_all[Amt Y] ) / 365
* MAX ( data_all[daycount_ytd] )
)
然而,你会看到它给你一个不正确的总数,因为它是最新的整个事情。您需要的是一个迭代行的版本,然后执行计算以SUM或AVERAGE每个项目。有一整套专用于此的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]))
)