DAX - 显示按值过滤的行数和上次报告 运行 日期的度量

DAX - Measure to show count of rows filtered by values and last report run date

又一个我无法理解的 DAX 难题!

我有一个 table,其中包含问题 ID、百分比值和相应的 RAG 状态(红色、琥珀色、绿色)- 该报告每天都会附加相关结果,然后被拉入 Power BI,例如:

Date Issue ID % RAG
08/03/22 1 10% Red
08/03/22 2 98% Green
08/03/22 3 80% Red
08/03/22 4 91% Amber
08/03/22 5 10% Red
08/03/22 6 98% Green
08/03/22 7 80% Red
08/03/22 8 91% Amber
09/03/22 1 25% Red
09/03/22 2 93% Amber
09/03/22 3 95% Amber
09/03/22 4 99% Green
09/03/22 5 94% Amber
09/03/22 6 50% Red
09/03/22 7 60% Red
09/03/22 8 100% Green
10/03/22 1 10% Red
10/03/22 2 98% Green
10/03/22 3 80% Red
10/03/22 4 91% Amber
10/03/22 5 10% Red
10/03/22 6 98% Green
10/03/22 7 80% Red
10/03/22 8 91% Amber

我可以找出 DAX 来提取整个 RAG 状态的每个值的数量 table:

RED RAG Status = CALCULATE(COUNTROWS('Main Fact Table'),'Main Fact Table'[RAG Status] = "RED")
AMBER RAG Status = CALCULATE(COUNTROWS('Main Fact Table'),'Main Fact Table'[RAG Status] = "AMBER")
GREEN RAG Status = CALCULATE(COUNTROWS('Main Fact Table'),'Main Fact Table'[RAG Status] = "GREEN")

但是我需要 RAG 计数来获取我的主要事实中的最新数据 table。 我可以在使用卡片视觉效果时使用过滤器,但更愿意对此进行测量。 我尝试了以下操作,因为我的日期维度 Table 中有“最新数据”真或假列,但出现错误:

CALCULATE(
    COUNT('Main Fact Table'[RAG Status] = "RED"),
    'Date DIM Table'[Most Recent Data] IN {TRUE()})

确认一下,我的日期维度 Table 只是用来代替 Power BI 中的 date/time 智能选项,它由日期列表、Power Query 中创建的列组成,用于拆分将日期转换为各种有用的信息位,如日期、一年中的一周等,以及计算列,其中 [Most Recent Data] 是其中之一(DAX 代码 Most Recent Data = if (MAX('Main Fact Table'[Run Date]) = 'Date DIM Table'[Date], TRUE(), FALSE())

因此,如果报告的最新 运行 日期是 3 月 10 日,我会在我的日期维度中看到这一点 Table:

Date Most Recent Data
08/03/2022 False
09/03/2022 False
10/03/2022 True

因此希望每个度量的输出(RED/AMBER/GREEN RAG 状态的计数)如下所示:

Date RAG Count
10/03/2022 Red 4
10/03/2022 Amber 2
10/03/2022 Green 2

我哪里错了?

非常感谢!

我自己想出了这个:

首先,我创建了三个度量(每个 RAG 状态一个):

Count Of Red Rag Status = CALCULATE(COUNTROWS('Main Fact Table'),'Main Fact Table'[RAG Status] = "RED")
Count Of Amber Rag Status = CALCULATE(COUNTROWS('Main Fact Table'),'Main Fact Table'[RAG Status] = "AMBER")
Count Of Green Rag Status = CALCULATE(COUNTROWS('Main Fact Table'),'Main Fact Table'[RAG Status] = "GREEN")

然后我使用 CALCULATE 函数和日期维度 Table 中的 Most Recent Data 计算列(使用 Most Recent Data = if (MAX('Main Fact Table'[Run Date]) = 'Date DIM Table'[Date], TRUE(), FALSE() 创建)对其进行过滤:

CALCULATE(
    [Count of RED RAG Status],
    'Date DIM Table'[Most Recent Data] IN { TRUE }