我是DAX的新手,之前我使用过MDX。我在MDX中有以下公式
CREATE
MEMBER CURRENTCUBE.[Measures].[Count Visit] AS [Measures].[Unique Contact Count]
;
scope([Date Cheque].[YEAR-MONTH-DATE].[Month Of Year], [Measures].[Count Visit]);
this= Sum
({[Date Cheque].[YEAR-MONTH-DATE].CurrentMember.Children}
,[Measures].[Count Visit]);
end scope;
scope([Date Cheque].[YEAR-MONTH-DATE].[Calendar Year], [Measures].[Count Visit]);
this= Sum
({[Date Cheque].[YEAR-MONTH-DATE].CurrentMember.Children}
,[Measures].[Count Visit]);
end scope;
我知道DAX中没有层次结构,所以我不知道如何做这样的事情
通常,您可以在DAX中使用过滤器检查功能,例如ISFILTERED,ISCROSSFILTERED,HASONEVALUE和ISINSCOPE,以确定当前的计算级别。这允许我们做复杂的事情,我们通常在MDX中使用SCOPE语句。
但是,在这种情况下,您似乎只想在日级别评估[Measures]。[Unique Contact Count],然后将其滚动到更高级别。为此,我们可以简单地编写[计数访问]度量,如下所示,假设您的“日期检查”表格中包含日期粮食的[日期]列:
SUMX(VALUES('Date Cheque'[Date]), [Unique Contact Count])
SUMX是一个所谓的迭代器函数,它将为第一个参数中的每一行(必须是表表达式)计算第二个参数,并返回第二个参数的总和。