似乎最好的开始方法是使用辅助列(在以下示例中,我选择了“列 M”)来标记卡车是否空车。
在帮助列中,您可以使用类似于以下公式的内容。
{=IF(ISBLANK(B2),0,IF(C2="In",0,IF(B2=$B$2:$B$13,IF($C$2:$C$13="In",IF($A$2:$A$13>(A2-TIME(0,30,0)),0,1),1),1)))}
这是一个数组公式,这意味着您必须ctrl+shift+enter在将其粘贴到单元格后按下。然后,您可以将该单元格复制到该列中。
只是为了解释一下,如果 C 列是“In”,则第一个 if 语句知道卡车不会空着到达。第二个 if 语句创建一个数组并测试以查看其他相同的卡车是否出现在其他行中。第三个 if 语句检查是否同一辆卡车在匹配的行中签入,第四个 if 语句验证他们签入的时间是否少于 30 分钟前。TIME(0,30,0)您可以通过编辑功能来调整长度。格式为TIME(hours,minuites,seconds). 除非卡车与第二个、第三个和第四个 if 语句中的所有三个匹配,否则它会被标记为空车。
一旦你有了这个帮助列,你几乎所有的任务都非常简单。
1a:有多少卡车空了?求和列 M
1b:哪家公司有多少辆卡车?创建唯一的公司列表。COUNTIFS然后基于列 M = 1 和列 K = 公司创建一个公式。例如,如果C32有,Company B那么公式=COUNTIFS($M$2:$M$13,1,$K$2:$K$13,C32)将返回2
1c:卡车空了多少次?与 1b 类似,创建一个唯一的车牌列表,然后使用COUNTIFS基于列 M = 1 和列 B = 车牌的 a。
2:与 1b 类似,仅使用针对 F 列测试的唯一产品列表
3:与 1b 类似,只需创建第二列,在第一列旁边,使用=COUNTIFS($M$2:$M$13,0,$K$2:$K$13,C53,$C$2:$C$13,"In")哪些测试 M 列报告卡车没有空车,与 K 列中的公司匹配,并且卡车“进来”所以你不要'当它“出去”时,不要重复计算同一辆卡车
4:只需排序由数字2创建的列表。您可以突出显示范围,右键单击并选择“排序”>“自定义排序”,然后选择要排序的列,从大到小。

5:有几种不同的方法,你可以这样做。公式
{=TEXTJOIN(", ",TRUE,IF($M$2:$M$13=1,$J$2:$J$13,""))}
(同样,作为数组公式输入)将创建一个逗号分隔的订单号列表。如果您想要一列订单号(但仅在它们实际上是数字时才有效),另一种方法是将公式 { =MAX(IF($M$2:$M$13=1,$J$2:$J$13,))} 粘贴到该列的第一行(在我的示例中为它O2),然后粘贴到{=MAX(IF($M$2:$M$13=1,IF($J$2:$J$13<O2,$J$2:$J$13,)))}下面的行(如果您将其粘贴到不同的位置,请更改引用O2)(再次注意,这两个都是数组公式)。然后将第二个公式复制并粘贴到列中。当空车的订单号用完时,公式将报告0。