如何解决数据透视表分组如何与DAX中的计算过滤器交互?我该如何覆盖它们?
我的数据模型中有一个表,其中包含现有产品数量,日期和库存来源表名称。我想创建一个数据透视表,以显示每个来源的总产品计数,但仅显示该表中的最后记录日期。
这是简化版:
我有一个采用以下措施的枢轴:
=VAR LastDay = MAX(FactTable[Date])
Return
CALCULATE(
sum(FactTable[On Hand Quantity]),FILTER(FactTable,FactTable[Date] = LastDay)
)
想法是,它在FactTable中查找最后一个日期,然后过滤该表以仅包括日期等于LastDay的行,然后在数据透视过滤器中提供该商品的现有数量的总和。
类似这样的东西:
这是真正的枢轴(针对特定项目进行了过滤):
Manual_Inv中的日期都是旧的,并且不包含LastDay。数据透视表显示源表为Manual_Inv的最大日期的总和(FactTable [现有数量])。不过,更奇怪的是,似乎可以理解它在表中显示的值不是我要的,因此它不包含在总计中。总计是最后一个可用日期的实际总数。
我对数据透视表分组如何与我的DAX代码交互感到非常困惑。据我所知,将透视表组(源表)应用于FactTable,然后在每个组上独立运行DAX代码,并提供结果,就好像每个组都是自己的表一样。然后,它查看结果,检查哪些日期与LastDay相匹配,并且仅将这些值包括在总计中。
有人可以提供一些有关这里发生的情况以及如何解决它的见解吗?我期望的支点看起来与上面相同,但是Manual_Inv的“当前可用”单元格应该为空白。
要离开几天,但我会在可能的时候回复。
解决方法
您正在计算的LastDay
变量的最大值在本地过滤器上下文中评估 。这意味着对于Manual_Inv
,它仅查询Manual_Inv
源中的行的最后日期。
要解决此问题,您可以定义LastDay
来考虑所有选定内容,而不仅仅是与当前行标签相对应的行。如果不涉及其他任何表(例如,与事实表有关系的日历表),则可以这样写变量:
VAR LastDay = CALCULATE ( MAX ( FactTable[Date] ),ALLSELECTED ( FactTable ) )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。