我正在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")
...它使过滤器根据需要正确生成表。
有人知道如何实现我要搜索的功能吗?
提前致谢。
你快到了胡安。您只需要dateSelected
在DAX查询中用作varialbe:
TABLE_B =
var dateSelected = FIRSTDATE(TABLE_A[EXEC_DATE])
return
FILTER(TABLE_A, TABLE_A[EXEC_DATE] = dateSelected)
请注意,我所有的日期都被格式化为Date,所以我不需要使用FORMAT
函数。
这是最终结果:
我承认这种行为可能会造成混乱!这是一个有用的链接,它将帮助您了解Power BI的上下文:
https://community.powerbi.com/t5/Desktop/Filtering-table-by-measures/td-p/131361
让我们将选项1视为FILTER(TABLE_A; TABLE_A[EXEC_DATE] = "20/02/2019")
,将选项2视为FILTER(TABLE_A; TABLE_A[EXEC_DATE] = [dateSelected])
。从帖子中引用:
在选项1的过滤器功能中,您正在“表”(行上下文)的每一行上进行迭代。在选项2中,因为您将度量用作筛选条件的一部分,所以此行上下文将转换为等效的筛选上下文(上下文转换)。
当您要基于度量值过滤列但不希望应用上下文转换时,使用变量(...)非常方便。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句