https:/docs.google.comspreadsheetsd1SiUfqrJNHPAYjibeNBdzWQEcuzka5srf7mSHAv_bn5kedit?usp=共享。
在这个示例电子表格中,计算司机平均每小时吨数的公式是怎样的?纠正长时间甚至几天的货物之间。
我们的运费是按小时收费的,所以我想弄清楚哪些司机的效率最高。
这很棘手,因为我们唯一具体的信息来源是秤票。所以,如果他们一天只做一次货运,或者两次货运之间要间隔好几个小时,那么如果你使用简单的指标,比如耗时,数据就会有偏差。
另外,我需要行之间的经过时间(而不仅仅是Time In和Time Out之间的差异),除非这个时间是> 1.5小时。所以类似于
=(TIMEVALUE(E3)-TIMEVALUE(D2))*24。
...加上一些逻辑,不包括任何超过1.5小时的东西。
如果一个数据透视表比一个冗长的公式要好,那我没意见。
这里有一个例子来增加一些背景。司机Cody去Farm Nic接收一车干草 然后回到称重站(票数、入库时间、毛利都是确定的),把干草倒掉,再空着回来称重(皮重、净重、出库时间都是确定的),然后回到Farm Nic,直到所有的干草都收割完毕。然后再去扎克农场和威廉姆斯农场重复这个过程。一次有几个Driver去,如果电子表格按Ticket排序,就可以看到。我的目标是计算出每个司机每小时运送多少吨的货物。 经过的时间将包括以下时间 之间 票,因为 "进场时间 "和 "出场时间 "只是显示了从带着一车干草进来到离开回到田地之间的时间。为了得到每小时运送吨数的真实衡量,你需要包括票据之间的时间,但也要删除时间超过1.5小时的任何情况。这将解释司机不工作而我们没有被计费的情况,例如设备故障期间。
我不是一个公式的家伙,所以我希望这能满足你的需求。
首先,我添加了一列到您的工作表,计算多少金额的小时,每一行,做到这一点,我使用的是 TIMEVALUE
函数。
=(TIMEVALUE(E2)-TIMEVALUE(D2))*24
现在你只需要得到所有司机的小时数和吨数,然后做商数。total_tons / total_hours
. 对于他们来说,他们可能会有一些其他的功能,将做的工作,我自己已经使用了。QUERY
:
=QUERY(Sheet1!A:M, "select C, sum(I), sum(M), sum(I) / sum(M) group by C", 1)
我觉得很简单的查询,把所有的数据按以下方式分组 C
司机的名字),然后将该列相加。I
(吨)和柱式 M
(小时)。
结果如下。
格式可能有点不对,但你可以随意改变它。你可以复制或玩弄 片子
在你改变了你的要求之后,我对我的计算工时的公式做了一个修改,我在这里解释一下,之前有一个简单得多的公式,但是现在有多行需要检查,使得公式更加冗长。
=IF(
AND(
C3=C2,
A3=A2,
IFERROR(
(TIMEVALUE(E3)-TIMEVALUE(D2))*24) <= 1.5,
TRUE
),
(TIMEVALUE(E3)-TIMEVALUE(D2))*24,
(TIMEVALUE(E2)-TIMEVALUE(D2))*24
)
让我在这里解释一下,之前有一个简单得多的公式 但现在有多行我们需要检查,这使得公式变得更冗长。
A3=A2
)C3=C2
)TIMEVALUE(E3)-TIMEVALUE(D2))*24) <= 1.5
)也因为最后一行抛出一个错误,试图用 TIMEVALUE
一个空列,我不得不添加 IFERROR
此后 TRUE
条件下(同一天,同一司机,相差1.5小时以内),将从当前的时间中计算出( )。D2
)到下一个时间在(D3
):
(TIMEVALUE(D3)-TIMEVALUE(D2))*24
而在... FALSE
语句,我们做的和以前一样。
(TIMEVALUE(E2)-TIMEVALUE(D2))*24
该 QUERY
功能保持不变。而效果却大打折扣。
如果你有任何疑问,你可以去看看。片子