我正在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")
...它使过滤器根据需要正确生成表。
有人知道如何实现我要搜索的功能吗?
谢谢。
答案 0 :(得分:1)
胡安,你快到了。您只需在DAX查询中使用T
作为变量:
dateSelected
请注意,我所有的日期都被格式化为Date,所以我不需要使用TABLE_B =
var dateSelected = FIRSTDATE(TABLE_A[EXEC_DATE])
return
FILTER(TABLE_A, TABLE_A[EXEC_DATE] = dateSelected)
函数。
这是最终结果:
我承认这种行为可能会令人困惑!这是一个有用的链接,可帮助您了解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 中,因为您 使用度量作为过滤条件的一部分,此行上下文 转换为等效的过滤器上下文(上下文转换)。
要过滤时使用变量(...)非常方便 基于度量值的列,但您不需要上下文 过渡到申请。