您的位置:首页 > 其它

如何通过excel公式查找一列数据中的相同项目?

2016-02-18 16:18 519 查看
公司内部某个部门要进行员工的工作效率的记录,但是要求通过EXCEL进行录入,最后算出综合效率,显示到另外一个表中。

条件:
1、手动录入日期、工号、品番、工时、数量。员工姓名:通过VLOOKUP找工号获得。
2、单个效率=数量/目标数。目标数:通过Vlookup找品番获得。
3、员工当天可能会有多个品番进行操作,会有多条记录,综合效率的公式=(效率A*A工时+效率B*B工时+...)/(A工时+B工时+...)



其他操作都是非常基础的操作,通过VLOOKUP等可以获取。

但是在多条记录中查找有相同特点的数据不太好实现。

只能考虑数组公式。



首先设定两组辅助公式:
都为=B3&E3 ,也就是日期+工号

最小效率公式:
=IF(K3=0,0,INDEX(INDIRECT(SMALL(IF($L$3:$L$65536=M3,ROW($3:$65536)),1)&":"&SMALL(IF($L$3:$L$65536=M3,ROW($3:$65536)),1),TRUE),0,11))

最小工时公式:
=IF(K3=0,0,INDEX(INDIRECT(SMALL(IF($L$3:$L$65536=M3,ROW($3:$65536)),1)&":"&SMALL(IF($L$3:$L$65536=M3,ROW($3:$65536)),1),TRUE),0,8))

最大效率公式:
=IF(K3=0,0,INDEX(INDIRECT(LARGE(IF($L$3:$L$65536=M3,ROW($3:$65536)),1)&":"&LARGE(IF($L$3:$L$65536=M3,ROW($3:$65536)),1),TRUE),0,11))

最大工时公式:
=IF(K3=0,0,INDEX(INDIRECT(LARGE(IF($L$3:$L$65536=M3,ROW($3:$65536)),1)&":"&LARGE(IF($L$3:$L$65536=M3,ROW($3:$65536)),1),TRUE),0,8))

由于一般情况下,单个员工一天最多操作两个品番,所以公式取一个最大值,一个最小值。如果有超过两个值的情况,请将SMALL公式的第二个参数改为1,2,3,...即可。
上面的4组为数组公式,记得录入完成后按:CTRL+SHIFT+回车

综合效率公式:
=IF(OR(N3="请假",P3="请假"),"请假",IF(N3="",P3,IF(P3="",N3,((N3*O3)+(P3*Q3))/(O3+Q3))))

将所有公式复制到下面的行即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息