工作日(06:00:00-06:00:00)与日历日(00:00:00-24:00:00)

写在前面

研究问题:非日历日的时间换算

使用工具:POWER BI

实现方法:DAX函数

计算思路

对于许多制造业来说,每日产能计算不是根据日历日(00:00:00-24:00:00)来计算的,而是把前一日开班时间到后一日开班时间这段间隔作为一个工作日。

比如,某工厂的每日开班时间为06:00:00,如果某个产品在2019/5/8 03:00:00被生产出来,那么依然认为它的生产日期是2019/5/7。因此,对这种工作日≠日历日的情况,要对实际生产日期进行换算。

生产记录
生产时间安排表

生产记录中展示了每个产品的实际生产日期和时间,生产时间安排表中记录了每个生产地的开班时间,当实际生产完成时间小于开班时间时,应将生产日期换算为前一日。

计算过程

1.建立关系

关系建立

2.新建度量值

换算日期 = IF(MAX('生产记录'[生产完成时间])<MAX('生产时间安排表'[每日生产开始时间]),MAX('生产记录'[生产完成日期])-1,MAX('生产记录'[生产完成日期]))

如果实际生产完成时间小于开班时间,那么换算日期就是实际生产日期前一日,否则,等于实际生产日期。

由于每种产品只有一条,因此聚合方式用MAX\MIN\SUM结果都相同。因为是度量值,因此不可不进行聚合,否则认为值太多,会报错!

(每个生产地开班时间不同,采用新建列处理行不通,若开班时间是恒值,则可采取新建列方式解决,新建列无需聚合。)

3.结果展示

结果展示

结果如上图所示,其中,手炮、风暴战斧、八蛛矛、元素枪、阿戈摩托之眼都是在开班时间前完成的,因此它们的换算时间都是实际生产日期的前一天。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,308评论 6 13
  • SwiftDate概况 从Swift发布起,我们就没有放弃使用Swift。 当然,我们希望在项目能够轻松自如地管理...
    Mee_Leo阅读 10,241评论 1 13
  • 我不想平步青云,因为我喜与世无争; 我不想纸上谈兵,因为都是夸夸其谈; 我不想按步就搬,因为这该死的"脚踏实...
    风啸云义薄云天liw阅读 265评论 0 1
  • 过莫高窟谒石雕如来有感 石质本愚顽,刻雕成佛祖。 高居在庙堂,安解众生苦。 烹祭得于民,谋皮干为虎。 无言以对之。...
    潇洒的老头阅读 137评论 0 0
  • 似乎总有那么几个人,我们曾不喜欢,甚至是讨厌,事后回望时却发现,他们不过是面恶心善。在尊严被他们“践踏”之时,我们...
    沈遇DQ阅读 791评论 12 25