|
现有简单模型Data表与其日历,日历由CALENDARAUTO自动生成(并添加自定义列YearMonth),Data形如:
求:每个Name对应的YearMonth个数。
写法如下:
- Wrong =
- ADDCOLUMNS (
- VALUES ( Data[Name] ),
- "MonthNum", CALCULATE (
- CALCULATE (
- DISTINCTCOUNT ( 'Date'[YearMonth] ),
- CALCULATETABLE ( ALLEXCEPT ( Data, Data[Name] ) )
- )
- )
- )
复制代码
我的理解:外层Calculate将当前Name转换为筛选上下文,内层Calculatetable在Allexcept作用下保留扩展表Data的Name列筛选,同时清除其他列筛选,即最后扩展表Data只有Name列有筛选,又由于Data扩展表包括日历表,因此实现对日历表的筛选,计算预期值。
实际:所有行都是一个值,即全部的YearMonth个数,Name列筛选无效。
同样的思路,改用All可行:
- Correct =
- ADDCOLUMNS (
- VALUES ( Data[Name] ),
- "MonthNum", CALCULATE (
- DISTINCTCOUNT ( 'Date'[YearMonth] ),
- FILTER ( ALL(Data),Data[Name]=EARLIER(Data[Name]) )
- )
- )
复制代码
不能理解,求解答。
pbix附件:
Test.zip
(63.06 KB, 下载次数: 31)
|
|