java累积日期,使用DAX在日期范围内累计不同日期的计数

他们说 divide and conquer 和's what I' d在你的情况下 . 基本上,所需的第一个计算是开始日期和结束日期之间的天数 . 一旦你有两个日期之间的差异,你可以累计这些值的总和 . 让我们在DAX中实现它 .

使用以下表达式在 LogBook 表中创建名为 DaysCount 的计算列:

DaysCount :=

IF ( [Start Date] < [End Date], DATEDIFF ( [Start Date], [End Date], DAY ), 1 )

现在创建一个度量来获取累计天数:

Cumulated Logged Days :=

VAR currentVehicle =

LASTNONBLANK ( LogBook[Vehicle ID], 0 )

RETURN

CALCULATE (

SUM ( LogBook[DaysCount] ),

FILTER (

ALL ( LogBook ),

LogBook[Row ID] <= MAX ( LogBook[Row ID] )

&& currentVehicle = LogBook[Vehicle ID]

)

)

Excel 2016支持 UPDATE DATEDIFF 功能,因此如果您使用的是其他版本, DaysCount 计算列将无法正常工作

DaysCount计算列的替代方案(在Excel 2013中测试):

=IF([Start Date]

对于变量的支持也包含在DAX 2015(Excel 2016)中,因此如果您有早期版本,则必须将此表达式用于 Cumulated Logged Days 度量 .

Cumulated Logged Days :=

CALCULATE (

SUM ( LogBook[DaysCount] ),

FILTER (

ALL ( LogBook ),

COUNTROWS (

FILTER ( LogBook, EARLIER ( LogBook[Vehicle ID] ) = LogBook[Vehicle ID] )

)

&& LogBook[Row ID] <= MAX ( LogBook[Row ID] )

)

)

Excel 2013数据透视表中的最终结果 .

W2usv.png

如果这有帮助,请告诉我 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值