计算生产率计算的多个标准的独特logging

我的工作队伍拥有高效率的Excel表格。 除了大量关于工作的其他信息之外,它还包含一个job numberdatecompleted by字段填写。 每个员工每天可能有50-60个参赛作品。

我希望能够做到的:
计算每个员工工作了多less天,通过应用一个公式计算一天作为工作,如果员工有任何进入该date(这个跟踪器,如果整整一年,所以我正在寻找一种方法,避免打字的每一天年)。

例如,我想对员工A说:“你在165天内完成了4000个工作,这使你的生产率达到了……”

如果Name = Employee A我想计算date列中的唯一值。 我的数据集大约是20K年的logging。

[ 这是我的数据,有20K行 1

这就是我想要的

怎么样这样的事情:

Excel表格

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

IF声明处理“你是我关心的员工吗? 方面并返回一组作业或date。 我们利用这个事实,即当我们用FREQUENCY同一个数组合并时,我们返回一个它已经看到的任何值的零。 双重否定,强迫数字布尔到零和零。

更多的解释在这里 。

如果不使用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))}您将获得不同的生产力金额和Job_Type组合。


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

最后,如果您只对某个特定的Job_type ,则可以事先考虑对数据进行子集或过滤。 即,预先筛选感兴趣的logging并创build一个新的数据集。