PowerBI - 创建网络国际日作为衡量标准

时间:2017-07-27 14:18:10

标签: powerbi

我有一个要求,其中有2个表,表1 - DateTable和表2 - MyTable。

我正在尝试计算类似于我们在Excel中所做的网络国际日。

  

注意:我的2张桌子没有连接,因为他们没有钥匙

     

DateTable在假日列中有假期。

     

MyTable在SubmittedDate列中有我的约会。

您如何解决这个问题并制定计算网络国际日的措施?

请求的架构:

MyTable 
Name RequestID SubmittedDate ExpectedResult
XABI 209874    25/7/2017     3

DateTable
Holidays Day   Reason
28/7/2017 Friday blabla
27/7/2017 Thursday blaalala

ExpectedResult是我想要计算的 - 它是3,因为只有3个工作日,即25 / 7,26 / 7,31 / 7(今天)。

28/7和27/7是公司假期,29 / 7,30 / 7是周末假期。

请分享您的想法。

1 个答案:

答案 0 :(得分:0)

holidays表(示例中为DateTable):

date
2017-01-02

calendar表(介绍):

date
2017-01-01
2017-01-02
2017-01-03
2017-01-04
2017-01-05
2017-01-06
2017-01-07
...

data表(示例中为MyTable):

date
2017-01-01
2017-01-03

将计算列添加到calendar表:

isworkingday = 
var isweekend = if(WEEKDAY(calendar[date])>5, 1, 0)
var isholiday = if(CONTAINS(holidays, holidays[date], calendar[date]), 1, 0)
return if(AND(isweekend=0, isholiday=0), 1, 0)

将计算列添加到data表:

workingDaysPassed = 
var curr = data[date]
return calculate(sum(calendar[isworkingday]),
    and(calendar[date]>=curr,
        calendar[date]<=today()),
    all(data))

workingDaysPassed应该是您的ExpectedResult,只要您填充calendar表:

date,       isworkingday, workingDaysPassed
2017-01-01, 1,            4
2017-01-02, 0,            3
2017-01-03, 1,            3
2017-01-04, 1,            2
2017-01-05, 1,            1
2017-01-06, 0,            0
2017-01-07, 0,            0