1

我有一个数据库,其中包含不同客户的运输订单,一个货物可以有多个不同的预计到达时间的派送,逻辑是:每条路线上的派送必须遵循顺序(06:00->06:30-> 08:00) 而不是 (06:30->08:00->06:00) 所有时间都在同一列中,但路线编号在另一列中。必须仅对同一路线中的​​调度进行验证。

首先,我尝试使用单独的表格,其中单元格计算路线中每次与下一次之间的差异,但当公式遇到空白单元格时出现错误。公式是:

=IF(COUNTIFS($I$2:$I$2000;$I2;$A$2:$A$2000;$A$2)>1;$E3-$E2;0)

我使用 COUNTIFS() 来验证同一调度中心在同一路线上的调度 wan,因为数据库合并了 5 个调度中心。该公式在检测到不正确的序列时返回负数,但在相邻路线上的最后一次调度和第一次调度之间检测到误报。

然后我尝试使用条件格式来检查这一点,使用:

=IF(COUNTIFS($I$2:$I$2000;I2;$A$2:$A$2000;A2)>1;E3<E2;0)

但是,有些事情是不对的......如果有人能给我一些见解来完成这项工作,或者是否有另一种方法来进行此验证,我将不胜感激(我相信有一个,但我还不知道它)。请帮忙。

更新:这是一些示例数据,您可以看到这些时间不是连续的,而且在每条路线上的最后/第一次调度中也会出现误报

样本数据澄清,并显示预期结果,需要避免误报。请帮忙

4

1 回答 1

1

假设您有以下命名范围

  • Col_A是 A 列中的数据;
  • Col_E是您在 E 列中的数据;
  • Col_I是您在 I 列中的数据。

您可以使用以下公式作为格式化规则:

=NOT(AGGREGATE(15,6,Col_E/(Col_A&Col_I=$A2&$I2),COUNTIFS($A$2:$A2,$A2,$I$2:$I2,$I2))=$E2)

突出显示 E 列,单元格E2为活动单元格,转到条件格式以设置上述格式规则,您应该具有以下内容:

例子

Column J仅用于演示。您的实际工作表中不需要此列。

其逻辑是Col_E/(Col_A&Col_I=$A2&$I2)根据 A 列和 I 列的信息从 E 列返回相关的时间范围,然后使用AGGREGATE函数返回nth该范围内nthCOUNTIFS公式确定的最小值,然后将nth时间与实际时间来确定它们是否相同。如果不是,则意味着交货被安排在较晚的时间,但定位在其他较早安排的交货之前,反之亦然(这就是为什么提前交货的交货时间较晚的交货时间和交货时间较晚的交货时间在我的示例中都突出显示了较早的时间)。

如果您有任何问题,请告诉我。干杯:)

于 2019-10-21T04:26:25.000 回答