gpt4 book ai didi

powerbi - 在 DAX 中进行测量以计算仅适用于 Power BI 的选定月份的年初至今

转载 作者:行者123 更新时间:2023-12-02 00:53:36 25 4
gpt4 key购买 nike

如何构建 DAX 度量来计算特定月份的 YTD 值总和?

这里我们有按月份分组的事实表。 FactTable 填充了实际数据和预测数据。了解实际结束时间的唯一方法是[截止日期]表中[年初至今结束]列中的信息。在表 [截止日期] 列 [YTD 结束] 中 – 这是一个单值表 – 我们选择了感兴趣的月份,我们希望查看该月份的 YTD 计算结果。在我们的例子中是三月。 FactTable 每月不定期更新,通常延迟一个月。由于更新不规律,无法与 TODAY 等时间函数关联。

enter image description here enter image description here我们希望在[年初至今] 月份的黄卡视觉中显示正确的年初至今值。当我们点击“2018-03”上的切片器时,我们几乎得到了我们想要的东西——黄卡中的正确值 66。然而这个解决方案不是自动的。我希望当 [End of YTD] 月份发生变化时自动看到正确的值,在我们的例子中是四月或五月。我不希望它由用户完成。

我的拼命努力可以从文件下载:DAX YTD.pbix

我用各种方式追赶鹿:

  1. 通过在 DAX 度量中使用FILTER函数。但似乎FILTER功能太苛刻了。它首先应用于事实表,仅选择一个月,然后错误地计算 YTD 值。因此,如果会有任何强制计算和过滤顺序的选项,成为希望。
  2. 我尝试了SWITCH功能来显示正确的结果对于特定月份,对于其他月份为 0 或 null。虽然我成功地做到了这一点,我却无法利用它。当它来到过滤阶段,我和以前一样绝望。顺便说一句,我可以如果 SWITCH 在表末尾生成总计,则可以实现这一点,但它才不是。令人惊讶的是。
  3. 我希望RELATED函数能够在[截止日期]表中显示正确的结果。至今我还没有走出迷雾。

非常感谢您的帮助。

在赏金之前更新。走向更高层次。我在 FactTable 中引入了一个类别列。请下载DAX YTD by category.pbix 。所以过滤现在变得更加复杂。我想要苹果类别的正确的年初至今数据。

最佳答案

您是否使用了Calendar 表中的Date 列,而不是FactTable 中的列?

如果您使用FactTable中的日期列,当您对日期应用过滤器时,它将过滤3月份的事实记录,然后进行计算,从而得到结果33

如果您使用Calendar中的记录,当您对其应用过滤器时,它会过滤Calendar上的记录(您想要在图表中显示),因此基础计算仍将保持不变。

<小时/>

一个工作示例:

日历 = 日历(日期(2010, 1, 1), 日期(2020, 12, 31))

date

我建议您更改度量的计算以避免在某些情况下丢失值:

Total = SUM(FactTable[Value])
MTD = TOTALMTD([Total], 'Calendar'[Date])
YTD = TOTALYTD([Total], 'Calendar'[Date])

results

<小时/>

更新:

我现在更清楚你想要实现什么,但它仍然看起来是 XY problem对我来说。

我理解您希望按原样显示仪表板,以便用户不需要每次都单击/输入来查看他们应该看到的内容。这就是为什么我不明白为什么您需要创建一个新表来存储截止日期(YTD 结束)。如何自动维护?

上面的相对日期过滤解决方案实际上仍然适用于您共享的 .pbix 文件。如果将Date列从Calendar表拖到黄卡的视觉级别过滤器并添加相对日期过滤器,它应该按如下方式工作:

yellow card

对于 End of YTD 视觉效果,您可以使用 following measure获取上一个日历月的第一天,因此您不需要为其创建另一个表:

End of YTD = EOMONTH(TODAY(), -2) + 1

希望这就是您想要实现的目标:

final result

Updated file供您引用。

<小时/>

再次更新:

我认为您必须编写自己的 YTD 计算,而不是使用内置计算,以便您可以利用在另一个表中定义的截止日期。在这里,我假设 'Cut off date'[End of YTD] 中只有一行。请注意,我已将 ALL() 添加到过滤器,以便黄卡保持不变 (66),而不是在单击其他一些行/过滤器时显示空白:

YTD_Special = 
CALCULATE(
[Total],
FILTER(
ALL(FactTable),
FactTable[Date] >= DATE(YEAR(VALUES('Cut off date'[End of YTD])), 1, 1) &&
FactTable[Date] <= VALUES('Cut off date'[End of YTD])
)
)

ytd special

关于powerbi - 在 DAX 中进行测量以计算仅适用于 Power BI 的选定月份的年初至今,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49728361/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com