为什么在DAX中的Filtered表表达式中,似乎只有硬编码的值可以使用?

问题描述 投票:0回答:1

我有一个措施[D Cohort Start Date Key],它是由一个过滤器选择的,并从一个静态的日期键值表中导出。

我在PBI中创建了一个表。

Dynamic List of IDs at Time T = 
var Pdate = CONVERT([D Cohort Start Date Key], DOUBLE)
--assume [D Cohort Start Date Key] evaluates to 20200331
var FilteredTable = FILTER('CustTable', 'CustTable'[DimBusinessDateKey] = Pdate)
RETURN 
SELECTCOLUMNS(FilteredTable,"CustID",[CustID])

但是当预期值出现时,返回的表没有值。我在公式中硬编码了一个2020000331的日期键值,而不是Pdate,它返回了预期的值。为什么会这样?我想在filedTable变量中使用DateKey变量(也许还有其他变量和用户通过filtres选择的措施)来使其动态化。

dynamic powerbi dax var tablefilter
1个回答
0
投票

这个问题的结果是 Pdate. 事实上,如果你在精确的过滤器和行上下文中计算,如 FilteredTable,我相信你会有答案。

因此,您需要对变量Pdate进行调试。您有两个选择。

A) Power BI 创建一个独立的测量。

Debug:=CONVERT([D Cohort Start Date Key], DOUBLE)

并在相同的过滤器和行的上下文中对其进行评估。FilteredTable 正在给你带来问题。这可能是一个非琐碎的任务,因此,见选项B)

B) DAX Studio如果您还没有能够评估 Debug 在相同的过滤器上下文中,与 FilteredTable,使用DAX Studio。

EVALUATE 
SELECTCOLUMNS('CustTable', "FilteredValue", 'CustTable'[DimBusinessDateKey], "Pdate", CONVERT([D Cohort Start Date Key], DOUBLE))

这个表达式生成了表,在这个表上,过滤器的 FilteredTable 被应用。这时就可以清楚地知道Pdate的值,您就可以得到问题的答案了。

© www.soinside.com 2019 - 2024. All rights reserved.