我有一些与特定任务的员工开始日期和结束日期相关的数据
如何使用PowerBi中的上述数据计算“总工作日”
预期产量将是该员工工作的天数(根据日期)
例如 12/2/2018 12/3/2018 = 1个工作日
但如果重复相同的记录,则将保留一个工作日
答案 0 :(得分:0)
您可以通过多种方式计算工作日,我将为您提供两个选择(均为计算列):
WorkingDays1 = Tasks[EndTime] - Tasks[StartTime]
(假设它是日期列类型),您可以添加.DATE以确保在该列后面)
OR
WorkingDays2 = DATEDIFF(Tasks[StartTime];Tasks[EndTime];DAY)
如果您想在同一天更正金额,可以使用IF语句:
WorkingDays3 =
IF (
Tasks[StartTime] = Tasks[EndTime];
1;
DATEDIFF ( Tasks[StartTime]; Tasks[EndTime]; DAY )
)
如果您希望对日期进行求和,可以在度量中求和以上生成的列之一,或者可以创建不需要该列的度量:迭代行,并计算正确的数量:
SUM WorkingDay =
SUMX (
Tasks;
IF (
Tasks[StartTime] = Tasks[EndTime];
1;
DATEDIFF ( Tasks[StartTime]; Tasks[EndTime]; DAY )
)
)
注意:这些计算不考虑周末或假期。
编辑:
如果只需要一个唯一的日期列表以及工作日,则可以使用类似的方法。重复开始日期:
SUM WorkingDay2 =
SUMX (
VALUES ( Tasks[StartTime] );
IF (
DATEDIFF ( Tasks[StartTime]; CALCULATE ( MAX ( Tasks[EndTime] ) ); DAY ) = 0;
1;
DATEDIFF ( Tasks[StartTime]; CALCULATE ( MAX ( Tasks[EndTime] ) ); DAY )
)
)
编辑2:
如果您想每天创建一个唯一列表,则必须摆脱datetime列中的时间部分。有几种方法可以执行此操作,但是一种选择是创建新列:
StartDate = Tasks[StartTime].[Date]
然后,您可以通过迭代日期而不是日期时间来调整度量值:
SUM WorkingDay3 =
SUMX (
VALUES ( Tasks[StartDate] );
IF (
DATEDIFF ( Tasks[StartDate]; CALCULATE ( MAX ( Tasks[EndTime] ) ); DAY ) = 0;
1;
DATEDIFF ( Tasks[StartDate]; CALCULATE ( MAX ( Tasks[EndTime] ) ); DAY )
)
)