计算生产率计算的多个标准的独特logging
我的工作队伍拥有高效率的Excel表格。 除了大量关于工作的其他信息之外,它还包含一个job number
, date
, completed by
字段填写。 每个员工每天可能有50-60个参赛作品。
我希望能够做到的:
计算每个员工工作了多less天,通过应用一个公式计算一天作为工作,如果员工有任何进入该date(这个跟踪器,如果整整一年,所以我正在寻找一种方法,避免打字的每一天年)。
例如,我想对员工A说:“你在165天内完成了4000个工作,这使你的生产率达到了……”
如果Name
= Employee A
我想计算date列中的唯一值。 我的数据集大约是20K年的logging。
[ 1
怎么样这样的事情:
Unique Jobs
和Unique 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一个新的数据集。