使用 Excel 查找人员丢失的每日日志

使用 Excel 查找人员丢失的每日日志

我有一个包含 2 个工作表的 Excel 文件。

其中一个有每日日志列表,如下所示:

Staff Person | Shift Date | Start Time | End Time
John | Oct 31 | 8:00 AM | 4:00 PM
John | Nov 3 | 2:00 PM | 10:00 PM

另一个有时间表,如下所示:

Staff Person | Date | Start | End
John | Oct 31 | 8:00 AM | 4:00 PM
John | Nov 1 | 8:00 AM | 4:00 PM
John | Nov 2 | 8:00 AM | 12:00 PM
John | Nov 3 | 2:00 PM | 10:00 PM

我想根据所有列比较这两个工作表(因为工作表中有多个人),并突出显示未输入每日日志的日程表工作表行。我考虑使用条件格式并输入公式。

有人知道我该怎么做吗?我没有 SQL 数据库,所以很遗憾我无法运行 SQL 查询。

谢谢

答案1

如果您拥有 Office 365:

=NOT(OR(BYROW(A2:D2=Daily!A2:D1000, LAMBDA(entry, AND(entry)))))

解释:

  1. 与整个表进行行比较,如果单元格匹配,将返回具有真值的布尔表
  2. 使用 BYROW 对布尔表中的每一行进行 AND 运算 - 这是为了确保行中的每个单元格都匹配,而不仅仅是说出名称或时间。如果计划行与相应的每日日志行匹配,则结果将是一个具有 TRUE 值的布尔列向量。
  3. 因为我们不关心匹配发生在哪里,或者发生多少次,所以只需将它们全部或组合成一个布尔值 - TRUE 表示计划行出现在每日日志的至少一行中。

注意:如果您没有 Office 365,您可以创建一个查找值列并将一行中的所有字符串连接在一起,例如

=A2&B2&C2&D2

在两张表中都执行此操作,例如在 E 列中。现在进行单列比较:

=NOT(OR(E2=Daily!E2:E1000))

您可能需要使用 CTRL+SHIFT+ENTER 提交此公式,以告诉 Excel 它是一个数组公式(取决于 Excel 版本)。此外,如果 OR 不起作用,请使用 BITOR。

相关内容