我有一个措施[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选择的措施)来使其动态化。
这个问题的结果是 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的值,您就可以得到问题的答案了。