计算具有多个生产率计算标准的唯一记录

时间:2016-03-14 15:13:34

标签: excel date

我有一张excel表,为我的员工提供了生产力。除了有关该作业的大量其他信息外,它还包含job numberdatecompleted by字段。每位员工每天工作时可能有50-60个条目。

我希望能做什么:
如果员工在该日期有任何条目,那么计算每个员工工作了多少天,通过应用一天算作工作的公式(这个跟踪器是否全年如此,所以我正在寻找一种避免每天输入的方法今年)。

例如,我希望能够对员工A说,"您在165天内完成了4,000个工作,这使您的工作效率达到......"

如果Name = Employee A,我想计算日期列中的唯一值。我的数据集大约有20,000条记录,涵盖整整一年。

[This is the data i have, with 20k rows 1

This is how i wish to present

1 个答案:

答案 0 :(得分:2)

这样的事情怎么样:

Excel Table

Unique JobsUnique Dates的计算位置为:

{=SUM(--(FREQUENCY(IF($A$2:$A$13=A2,$B$2:$B$13),IF($A$2:$A$13=A2, $B$2:$B$13))>0))} 和 分别为{=SUM(--(FREQUENCY(IF($A$2:$A$13=A2,$C$2:$C$13),IF($A$2:$A$13=A2, $C$2:$C$13))>0))}。请注意,公式是数组公式,这意味着它们需要使用 CTRL + SHIFT + ENTER 输入。

IF语句处理"您是我关心的员工吗?"方面并返回一系列作业或日期。我们利用这样一个事实:当我们使用FREQUENCY对同一个数组进行bin时,我们会为它已经看到的任何值返回零。双重否定,--,将数字强加为布尔与零。

有更多解释here

如果没有FREQUENCY方法或没有数组公式,可能会这样做,但根据数据集的大小,您可能需要考虑性能影响。

更新(每条评论):

如果您有一个额外的列,例如column D = Job_Type,则可以为IF条件添加条件,如下所示:

{=SUM(--(FREQUENCY(IF(($A$2:$A$13=A2)*($D$2:$D$13="Job Type X"),$B$2:$B$13),IF(($A$2:$A$13=A2)*($D$2:$D$13="Job Type X"),$B$2:$B$13))>0))}

通过使用带星号的乘法*,我们隐含地暗示逻辑中存在AND条件;请注意,如果我们想要OR逻辑,我们可以使用+。另请注意附加括号。在这一天结束时,首先要检查这是否是我关心的Emp;接下来,检查这是否是我关心的Job_Type;如果这两个结账,请返回我感兴趣的列并继续如上所述。

注意:刚才描述的方法会使员工对指定的Job Type产生相同的结果 - 在本例中,记录为Job_Type == "Job Type X"。您可以执行以下操作:{=SUM(--(FREQUENCY(IF(($A$2:$A$13=A2)*($D$2:$D$13=D2),$B$2:$B$13),IF(($A$2:$A$13 = A2)*($D$2:$D$13=D2),$B$2:$B$13))>0))},您将获得每个EmpJob_Type组合的不同生产力金额。

或者,您可以创建一个新的Key列,例如Emp_Job_Type,它会连接两列,例如:=A2&D2

最后,如果您只对一个特定的Job_type感兴趣,您还可以考虑事先对数据进行子集化或过滤。也就是说,过滤前期感兴趣的记录并创建新的数据集。