Excel公式计算签入时间

时间:2018-07-30 03:48:41

标签: excel

我有1个月的餐厅日志文件。我需要从Checkin TimeTime栏中计算Bill Number时间。

我的格式为:

Date |Time| TableNumber| Checkin time |Bill Number ..|...|...|  

我可以通过复制Time列的第1个数据并复制到帐单号相同的Checkin time中来一次手动计算一次。

我已经附加了Screenshot的数据。

示例1:蓝色方块

在蓝色正方形中,我们可以看到Time列的第一个值为0:02:37,我将其粘贴到Checkin time中,它的值为Bill Number 29。

示例2:红色方块

Time的第一个值为16:08:40,我已粘贴到Checkin time列中,其帐单号为1,依此类推。

我没有任何方程式或公式就手动进行了操作。但是问题是数据是1个月,我大约需要计算6个月。


我尝试过的事情 来自@girlvsdata给我的公式
我尝试过

=MINIFS(B:B,E:E,E3)

我确实获得了第一个两个唯一帐单号的数据,但是将论坛进一步拉下后,我得到了不同的新帐单号时间。 +,因为票据编号在下排重复多次,因此我得到了与第一票据编号相同的重复票据编号。 这是我尝试过之后的屏幕截图 Screenshot_after

3 个答案:

答案 0 :(得分:0)

如果您拥有最新版本的Excel,则可以使用=MINIFS()查找该特定TimeBill Number)的前一个Checkin time

在单元格D3中输入以下公式:

=MINIFS(B:B,E:E,E3)

请确保该单元格具有Time格式,以便正确显示。

答案 1 :(得分:0)

因此,如果我阅读的是正确的字词,那么您想将“签到时间”与帐单号的“时间”首次出现相对应吗?

您应该在D2中使用公式,例如:

=INDEX($B$2:$B$1000,MATCH(TRUE,EXACT(E2,$E$2:$E$1000),0))

使用 Ctrl + Shift + Enter 确认并向下拖动公式

注意:将$B$1000$E$1000更改为工作表结尾的行号

编辑1

这是一个如何工作的示例;

enter image description here

编辑2

在您的数据中,这对我有用:

enter image description here

答案 2 :(得分:0)

我提出以下建议:

=IF(AND(E3=E1,C3=C1,A3=A1),D1,MIN(OFFSET(E3,0,-3,MATCH(0,(E3:E$18=E3)*(C3:C$18=C3)*(A3:A$18=A3),0)-1,1)))

它有点长,可能需要一段时间才能计算出是否有很多行。上面的公式将作为数组公式输入,即复制/键入公式,然后使用Ctrl + Shift + Enter代替Enter。如果操作正确,excel将在其周围插入{},如以下屏幕截图所示:

enter image description here

相应地更改范围E3:E$18C3:C$18A3:A$18,请注意,它们都位于表结尾下方的一行(否则,您将得到{ {1}}(最后一张帐单)。