2017-07-27 30 views
0

我有一個要求,我有2個表,表1 - DateTable和表2 - MyTable。PowerBI - 創建網絡國際日作爲措施

我想計算網絡國際日與我們在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

我們不知道你在excel中做什麼。您應該發佈您的架構,示例數據和預期結果。 – user5226582

+0

爲什麼不能在'SubmittedDate'和'DateTable'之間建立關係? – NickyvV

+0

DateTable只有一些日期,如果我建立一個關係,它會匹配什麼基礎?它會拋出很多空值。 – Sid29

回答

0

holidays表(在你的榜樣DateTable):

date 
2017-01-02 

calendar表(介紹):(在你的例子MyTable

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

data表:

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 
+0

謝謝!有效。我現在理解了這個想法:) – Sid29

+0

非常歡迎。 – user5226582