如何使用SUMMARIZECOLUMNS并保留特定列Date[Date] (Calendar)的所有值的结果?
EVALUATE
SUMMARIZECOLUMNS (
'Date'[Date],
'Sales'[CustomerKey],
"__MaxDate_Sales",
CALCULATE (
MAX ( 'Sales'[Order Date] )
,REMOVEFILTERS ( 'Sales' )
,VALUES ( Sales[CustomerKey] ) --Comment this line to get full Calendar dates
)
)
ORDER BY 'Date'[Date] DESC
链接到操场复制问题:
https://dax.do/JQ83Voo6Ds93B1/
注释,VALUES ( Sales[CustomerKey] )
行会得到直到2011-12-31的所有'Date'[Date](如期望的那样),但是,该函数不会返回每个Customer的最后一个不同的日期。取消注释,返回正确的结果,但将Date表缩小到Sales表日期的最大值。
是否有可能解决问题没有包装SUMMARIZECOLUMNS与ADDMISSINGITEMS?
+------------+--------------------+-----------------+-----------------+
| Date[Date] | Sales[CustomerKey] | __MaxDate_Sales | Status |
+------------+--------------------+-----------------+-----------------+
| 2011-12-31 | 123 | 2009-12-31 | Current result |
| 2011-12-31 | 123 | 2007-01-02 | Expected result |
| 2011-12-31 | 998 | 2007-08-31 | Expected result |
+------------+--------------------+-----------------+-----------------+
如果您注释了上面的行,那么当前结果对于任何客户机都是相同的。Date表比Sales表长2年。
这是你想要的吗?
EVALUATE
SUMMARIZECOLUMNS (
'Date'[Date],
'Sales'[CustomerKey],
"__MaxDate_Sales",
CALCULATE (
MAX ( 'Sales'[Order Date] ),
REMOVEFILTERS ( 'Date' )
)
)