在DAX中过滤DISTINCTCOUNT

时间:2014-10-24 18:58:09

标签: powerpivot dax

我认为这是一项简单的任务:创建一个Measure,它返回满足特定过滤条件的所有记录的字段的非重复计数,在本例中为日期过滤器。我想出了以下内容:

=CALCULATE(DISTINCTCOUNT(ExitFilter[Dim_Client_ID]),ExitFilter[ExitDate]<1/1/2014)

结果是(空白)所以我试过了:

=CALCULATE(DISTINCTCOUNT(ExitFilter[Dim_Client_ID]),FILTER(ExitFilter,ExitFilter[ExitDate]<1/1/2014))

结果仍然是(空白)所以我试过了:

=CALCULATE(COUNTROWS(DISTINCT(ExitFilter[Dim_Client_ID])),FILTER(ExitFilter,ExitFilter[ExitDate]<1/1/2014))

结果仍然是(空白)。我错过了什么?什么(空白)表示什么?

如果不清楚'ExitFilter'是一个表,[Dim_Client_Id]是一列,[ExitDate]是一个日期列。

2 个答案:

答案 0 :(得分:1)

汤姆,比较日期来自我用简单Date function最好的经验。

因此,如果您将公式更新为以下内容:

=CALCULATE([Your Measure], Table[DateColumn]>DATE(2014,1,1))

通过易于阅读的代码,您将获得所需的一切。此外,对于任何高级基于时间的计算,最好的方法是创建dates table并使用PowerPivot的Time Intelligence模块。

答案 1 :(得分:0)

汤姆,认为你的第二次尝试是对的&#39;但是你需要注意你如何表达日期。

后来的版本PowerPivot对此有点有趣,而#34; 01/01/2014&#34; 应该工作,我认为不会。

而是尝试用41640替换01/01/2014 - 这是基础日期值,它的hacky但是那么任何类型的硬编码日期: - )