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号也是完全正确的。

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

  • 相关阅读:
    pydev 下Django 1.7 undefined variables from import问题的解决
    前端CDN公共库整理
    BugFix:URL or HTTP headers are too long (IP=127.0.0.1)
    目前最好用的软件下载网站
    mysql数据库优化之表的设计和慢查询定位
    Hadoop-08-Hive本地独立式安装
    AspNetPager真假分页对照实例
    Android从无知到有知——NO.6
    Xpath—解决这个问题的良药
    C# Json反序列化 数据协定类型 无法反序列化 由于未找到必需的数据成员
  • 原文地址:https://www.cnblogs.com/Javi/p/13651166.html
Copyright © 2011-2022 走看看