首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >截至去年的月份总数,直到该月份的某一天

截至去年的月份总数,直到该月份的某一天
EN

Stack Overflow用户
提问于 2019-02-05 19:48:20
回答 2查看 873关注 0票数 1

我想计算去年同期每日MTD销售额的总和,直到某一特定的一天--上一次销售交易的日期。

例如,如果过滤器是year= 2019和month= 2,我需要2018年2月的MTD销售额,直到第5天,逐日计算:

代码语言:javascript
运行
复制
MTDSales=
VAR MyDay = 5
RETURN
CALCULATE(
  TOTALMTD(SUM(Sales); Calendar[Date]);
  SAMEPERIODLASTYEAR(Calendar[Date]);
  //here I need another filter to stop on the 5th!
)

编辑:

请查看此链接以查看示例数据。

我试图建立的措施是:销售MTD CY

销售MTD LY销售MTD CY*

销售MTD LY*销售MTD CY**

销售MTD LY**

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-05 20:35:18

因为今天是二月五日,所以我想你用的是5号。

您可以获得当前月份的MTDSales,如下所示:

代码语言:javascript
运行
复制
MTDSales = 
VAR DateRange = DATESBETWEEN( Calendar[Date], EOMONTH(TODAY(), - 1) + 1, TODAY() )
RETURN CALCULATE( SUM( Sales ), DateRange )

要与前一年相匹配,只需使用SAMEPERIODLASTYEAR即可。

代码语言:javascript
运行
复制
LastYearMTDSales = 
VAR DateRange = DATESBETWEEN( Calendar[Date], EOMONTH(TODAY(), - 1) + 1, TODAY() )
RETURN CALCULATE( SUM( Sales ), SAMEPERIODLASTYEAR(DateRange) )

如果您想使用与TODAY不同的日期,只需将该日期指定为变量,并将其传递到DateRange变量中TODAY出现的位置。

如果您想要在这个月的第五天找到这个MTDSales (假设您在过滤器上下文中有这个月),请尝试如下

代码语言:javascript
运行
复制
MTDSales = 
Var MyDay = 5
VAR MyDate = MIN( Calendar[Date] ) + MyDay - 1
VAR DateRange = DATESBETWEEN( Calendar[Date], EOMONTH(MyDate, -1) + 1, MyDate )
RETURN CALCULATE( [Sum of Sales], DateRange )

然后,对于前一年,您可以重用该度量,但更改如下:

代码语言:javascript
运行
复制
PrevYearMTDSales = 
CALCULATE( [MTDSales], ALL( Calendar ), SAMEPERIODLASTYEAR( Calendar[Date] ) )

编辑:看了你的PBIX之后,我意识到我对过滤器上下文做了错误的假设。由于您希望在日期级别上编写度量值,因此请尝试以下操作:

代码语言:javascript
运行
复制
Sales MTD CY =
VAR MyDay = 5
VAR CurrentDate = MAX ( 'Calendar'[Date] )
VAR MyDate = EOMONTH ( CurrentDate, -1 ) + MIN ( MyDay, DAY ( CurrentDate ) )
RETURN
    CALCULATE (
        TOTALMTD ( SUM ( Sales[Sales] ), 'Calendar'[Date] ),
        FILTER ( 'Calendar', 'Calendar'[Date] <= MyDate )
    )

前一年的措施仍然可以参照这一措施和转移。

票数 1
EN

Stack Overflow用户

发布于 2019-02-05 20:15:20

将我的列名替换为您的列名,它应该有效--公式保持不变:

代码语言:javascript
运行
复制
MTDSales = 
VAR MyDay = 5
RETURN
CALCULATE(
  TOTALMTD([total sales], 'Calendar'[DateKey]),
  SAMEPERIODLASTYEAR('Calendar'[DateKey]),
  FILTER(
      ALL(Sales),
      Sales[DateKey] >= STARTOFMONTH('Calendar'[DateKey]) && Sales[DateKey] <= DATEADD(STARTOFMONTH(Sales[DateKey]),MyDay-1,DAY)
      )
    )

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54541990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档