zoukankan      html  css  js  c++  java
  • Power BI Dax 动态账期,并将该月余下的天数计入下一个月

    有小伙伴问我如果账期是每月的25号,并且当月余下的天数统计在下一个月内,那么金额该如何计算。

    这是一个很多公司都会遇到的一个问题,那么用Power BI 如何来实现。其实并不复杂,我们来一起理一下。

    首先我们先来思考遇到的问题

    1. 将25号作为月末,而不是自然日的月末。

    2. 每月25号之后的天数统计在下一个月内,剩余3~6 天会记入下一个月。

    一看这样的要求,脑中飞过无数的计算逻辑和过程吧,一时间没什么有效方案,那么先看看下一组分析,下一组是以25天作为一个周期的账期,好像也差多,还是继续看这里。

    为了避免账期日期的各有不同,所以要让计算过程变得灵活点,我们先来设置一个参数,账期日

    mea_DayRange = 25

    然后就是写Dax 函数

    mea_SalesForDayLimit =
    var sd=SELECTEDVALUE(Dim_Calendar[YearMonth])
    var y=IF(MONTH(sd)<>1,YEAR(sd),YEAR(sd)-1)
    var m=IF(MONTH(sd)-1==0,12,MONTH(sd)-1)
    var frd=DATEVALUE(y&"/"&m&"/"&([mea_DayRange]+1))
    var erd=DATE(YEAR(sd),MONTH(sd),[mea_DayRange])
    var p=CALCULATE(SUM(Fact_Sales[Sales]),Dim_Calendar[Date]>=frd,Dim_Calendar[Date]<=erd)
    return p

    分别计算出每期的起始日与结束日,需要注意的是如果是一月份,年时跨年的,这里的Dax 内变量的日期计算用朴实无华的加减法,而不能套用什么的dateadd这种函数操作,我们来看一下结果

    左边的list 是计算的度量值,那么为了验证,我也放了一个筛选器以及实际的销售字段

     

     发现这值的确是我们想要的,并且还能自由改变账期日

     可以看出,即使账期日改成了20号也是完全正确的。

    好了,今天的分享就到这里,有问题可以向我提问,我会尽量答复。

  • 相关阅读:
    DB2数据常用指令
    HTMLParser使用
    面试知识点总结之数据库
    面试知识点总结之算法
    面试知识点总结之操作系统
    面试知识点总结之计算机网络
    面试知识点总结之Java语言
    一个精确匹配的问题
    【转】矩阵求导,矩阵计算
    【转】用C语言扩展Python的功能
  • 原文地址:https://www.cnblogs.com/Javi/p/13651166.html
Copyright © 2011-2022 走看看