考虑下表中的雇员。

这很简单,对吧?开始的时候打卡,午餐的时候打卡,午餐后打卡,离开的时候打卡。但是谁能告诉我这些员工实际上是什么时候开始工作的?那么举个例子,你怎么说Tom在早上6:51而不是下午12:23呢?
为了获得更多的参考,所有条目看起来都是这样的。他们至少有4个条目,(有些人,没有午餐)。
如何编写返回开始时间的公式?
我编辑了该表,并为该日期添加了一个helper列。见下文。
答案:
=AGGREGATE(15,6, $C$2:$C$7/((A11=$A$2:$A$7)*(B11=$B$2:$B$7)),1)

发布于 2020-04-15 06:47:51
如果工作时间在一天之内,您可以搜索最小的时间。如果午夜以后有夜班,那就有问题了……
=AGGREGATE(15,6,(1/($A$2:$A$5=A2)*(INT(B2)=INT($B$2:$B$5)))*($B$2:$B$5),1)

发布于 2020-04-15 06:45:35
我已经为range E2写下了这个公式:
=IF(AND(A2=A3,TRUNC(B2,0)-TRUNC(B3,0)=0),MIN(B2,B3),IF(AND(IFERROR(TRUNC(B2)-TRUNC(B1)=0,FALSE),E1=MIN(B2,B1)),"",B2))"由于英语不是我在Excel上的默认语言,我只是手动翻译了它。无论如何,以防万一,下面是将其粘贴到range E2中的VBA代码:
Range("E2").FormulaR1C1 = "=IF(AND(RC[-4]=R[1]C[-4],TRUNC(RC[-3],0)-TRUNC(R[1]C[-3],0)=0),MIN(RC[-3],R[1]C[-3]),IF(AND(IFERROR(TRUNC(RC[-3])-TRUNC(R[-1]C[-3])=0,FALSE),R[-1]C=MIN(RC[-3],R[-1]C[-3])),"""",RC[-3]))"我尝试过各种配置,它对我很有效。Only point: list必须按名称和打卡时间排序。
https://stackoverflow.com/questions/61217164
复制相似问题