【问题标题】:DATEADD to calculate PYTD (Jan 1 till today's date) in DAX Power BIDATEADD 在 DAX Power BI 中计算 PYTD(从 1 月 1 日到今天)
【发布时间】:2022-06-17 15:54:55
【问题描述】:

我有 3-4 年的每日销售数据。我想创建将每天更新的 YTD 和上一年度迄今为止的销售量度。也就是说,它应该始终是从年初(选定)到今天或数据的最后一天(从今天开始滞后 1 天,最大日期)。

我使用了 Sameperiodlastyear,但在月初时出现问题,因为它将 2022 年 1 月 1 日至 2022 年 6 月 8 日与 2021 年 1 月 1 日和 2021 年 6 月 30 日进行比较。

有什么建议我可以创建一个修改过的年初至今的衡量标准来解决这个细微差别吗?

【问题讨论】:

标签: powerbi dax


【解决方案1】:

这是该案例的标准解决方案。首先,使用 DATESYTD() 函数获取当前年份或上一个可见年份的所有日期,然后将其抵消。

SAMEPERIODLASTYEAR(DATESYTD(‘Date’[Date]))

等于

DATEADD(DATESYTD(‘Date’[Date]),-1,YEAR))

如果您想设置确切的日期,请尝试以下操作:

VAR FirstDayOfYear = 
        SAMEPERIODLASTYEAR(STARTOFYEAR(_Calendar[Date])
VAR LastDay = 
        SAMEPERIODLASTYEAR(
                          LASTDATE(_Calendar[Date])
        )
VAR SetOfDates= 
        DATESBETWEEN(
                    ‘Date’[Date]
                    ,FirstDayOfYear
                    ,LastDay 
        )
RETURN 
    SetOfDates

【讨论】:

  • 谢谢你,米克。我尝试了您的两个建议,但我仍然收到与我仅使用 SAMEPERIODLASTYEAR(Date[Date]) 时收到的值相同的值,即整个 6 月,尽管数据截至 6 月 8 日。我应该在某处指定最大日期吗?
  • 使用 LASTDATE() 函数可以获得什么价值?它的语法是 - LASTDATE ( )
  • DATESYTD 返回上一个可见日期之前的日期。这意味着如果你有,例如,直到年底的日期并且它们没有被过滤,那么你将获得截至 12 月 31 日的所有日期。
  • 我为您的案例添加了新的解决方案。幸好这坏事。
  • 嗨 Mik,感谢您添加新的解决方案。不幸的是,我仍然得到与去年同期标准公式相同的答案。我的 lastdate(Date) 总是前一天(我们的数据滞后 1 天)。当我将日期过滤到过滤器中可用的最后一个日期时,我的 PYTD 总计是正确的,但是当我取消过滤时,总计会跳转到计算 PYTD 的整个 6 月份。
猜你喜欢
  • 2020-06-12
  • 2022-09-30
  • 2020-08-23
  • 1970-01-01
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多