问题描述
在可视化“最后”年份(即具有整年数据的最新年份)的值时,我遇到了一个“奇怪”的问题。在提供的示例中,是2019年,其中包含预订事实。年份应通过相关表(LetztesVollesJahrDim)得出,该表保存每个公司/实体的最小/最大日期和年份值。 DateDim表包含所有日期,并配置为Date维度。
关系如下图所示。
我创建了一个报告,该报告应显示具有不同值的不同矩阵表:
-
一个,按“费用中心”显示最近一年的每月值(正确)
-
一个,显示所有年份的月度值,包括当前年度(2020年)的估计值(也可以正常工作)
-
一个,它可以细分到事实的详细信息级别,并显示上一整年(即2019年)的每月数字(以列为单位),从而将成本中心和其他组降低到最详细的级别成排。此矩阵利用通过表格编辑器创建的计算度量。
在这一点上,我可以在这里说...在没有计算量度的情况下尝试一下,实际上我只是通过显示一张将可视过滤器设置为DateDim [M] = 7的Card来模拟每个矩阵的列的功能。问题是相同的:Visual的Month筛选器(或在Calculated Measure中)被忽略,并且显示了年度总和(〜48k),这是错误的。
由于我目前是SQL Server DBMS的专家,但不是Power BI的DAX模型的体系结构的专家,所以我并不真正了解何时以及为什么在哪个建模级别删除,忽略,覆盖或添加筛选器的后果。 / p>
最初,我尝试创建一个简单的计算度量来反映公司的上一整年。那行得通,但是由于它一直在计算,因此无法在庞大的Matrix中使用它。这就是为什么我创建简单表“ LetztesVollesJahrDim”来保存每个公司的持久价值的原因。
这个想法很简单:创建一个内部连接这些表的查询,并显示每个月[M]的总和,如下所示:
事实[周转]-事实[CompanyKey]-> CompanyDim [CompanyKey] LastFullYear [CompanyKey]-LastFullYear [MostCurrentYear]-> DateDim [Y]-DateDim [DateKey]-> Fact [StapleDateKey]
那是什么问题?
我尝试了几个DAX查询,但都提出了不同的错误值。
采用三种不同的方法来计算量度“ Sum LY”:
1。
ΣLY =计算(SUM(KontobuchungenFact [UmsatzNegiert]),DATESBETWEEN(DateDim [DateKey],DATE(2019,1,1),DATE(2019,12,31)))
2。
ΣLY =计算(SUM(KontobuchungenFact [UmsatzNegiert]),SAMEPERIODLASTYEAR(DateDim [DateKey])) [
3。ΣLY =计算(SUM(KontobuchungenFact [UmsatzNegiert]),KEEPFILTERS(DateDim [M]),USERELATIONSHIP(DateDim [J],LetztesVollesJahrDim [AktuellstesJahr]),USERELATIONSHIP [DateDateDateDateDateDateDateDateDateDateDateDateDateDateDateDateDateDate
在页面/视觉上应用的过滤器:
- CompanyKey
- DateKey> = 2018-01-01(页面过滤器将年度矩阵中显示的行限制为最近3 ys)
- 其他一些不相关的键
视觉配置:
关系:
LetztesVollesJahrDim表中的值/行:
表格编辑器中的计算度量/表显示了第一个矩阵的“ 01 Jan”列的计算,该列显示了正确的结果:
报告的印象:
因此,总而言之,我需要一个线索/ DAX公式,该公式可以识别每一列中的Monthes,并理想地使用与上一年份表的关系,并通过DateDim到Facts越过年份的过滤器。
有趣的是,上部矩阵有效,但下部矩阵无效。无法使用最后一个矩阵中第一个矩阵的计算度量方法,因为性能将下降为>分钟计算。因此,我不能使用相同的方法,而需要快速的方法。 有人有主意吗? :-)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)