我有一张工作效率很高的excel表。随着大量的有关工作等信息,它包含了一个job number
,date
和completed by
领域。每个员工每天工作的时间可能有50-60个条目。
我想做的是:
通过应用公式来计算每个员工的工作天数,如果该员工在该日期有任何输入,则将一天视为工作(此跟踪器如果是整整一年,所以我正在寻找从而避免了每年的每一天都要输入)。
例如,我想对员工A说:“您在165天内完成了4,000个工作,这使您的生产率达到...”
如果Name
=,我想计算日期列中的唯一值Employee A
。我的数据集大约涵盖了整整一年的2万条记录。
[ 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 + ENTER。
该IF
声明处理“您是我关心的员工吗?” 方面,并返回作业或日期的数组。我们利用这样的事实,当我们与进行相同的数组装箱时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))}
你会得到各种不同生产能力达Emp
和Job_Type
组合。
或者,您可以创建一个新Key
列,例如Emp_Job_Type
将两个列连接起来,例如:=A2&D2
。
最后,如果您只对某个特定的东西感兴趣Job_type
,则还可以考虑预先设置子集或过滤数据。也就是说,预先筛选感兴趣的记录并创建一个新的数据集。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句