Power BI-创建计算表

时间:2020-03-20 17:10:12

标签: powerbi

我正在Power BI中创建仪表板。我必须每天报告一个过程的执行情况。选择这些日子之一时,我想根据所选日期(提供有关执行次数和工时的具体信息)创建另一个计算表,如下所示:

TABLE_B = FILTER(TABLE_A; TABLE_A[EXEC_DATE] = [dateSelected])

当从以下选择的日期起预先计算了[dateSelected]时:

dateSelected = FORMAT(FIRSTDATE(TABLE_A[EXEC_DATE]);"dd/MM/yyyy")

我尝试了许多替代方法,例如,分别创建年,月和日,以便以后进行比较。我在比较的两面都使用了格式,但是它们都不适合我。在大多数情况下,它会向我返回整个源表,而没有任何类型的过滤器。在其他情况下,它不返回任何内容。但是,当我把具体的一天...

TABLE_B = FILTER(TABLE_A; TABLE_A[EXEC_DATE] = "20/02/2019")

...它使过滤器根据需要正确生成表。

有人知道如何实现我要搜索的功能吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

胡安,你快到了。您只需在DAX查询中使用T作为变量:

dateSelected

请注意,我所有的日期都被格式化为Date,所以我不需要使用TABLE_B = var dateSelected = FIRSTDATE(TABLE_A[EXEC_DATE]) return FILTER(TABLE_A, TABLE_A[EXEC_DATE] = dateSelected) 函数。

这是最终结果:

enter image description here

我承认这种行为可能会令人困惑!这是一个有用的链接,可帮助您了解Power BI的上下文

https://community.powerbi.com/t5/Desktop/Filtering-table-by-measures/td-p/131361

我们将选项1 视为FORMAT,将选项2 视为FILTER(TABLE_A; TABLE_A[EXEC_DATE] = "20/02/2019")。引用帖子:

选项1 中,在过滤器函数中,您正在迭代 在“表格”的每一行(行上下文)上。在选项2 中,因为您 使用度量作为过滤条件的一部分,此行上下文 转换为等效的过滤器上下文(上下文转换)。

要过滤时使用变量(...)非常方便 基于度量值的列,但您不需要上下文 过渡到申请。