比较工作表2

时间:2017-09-15 00:07:42

标签: excel vba excel-vba qt

我有2张包含以下标题的数据

表1:

NetID | TimeSlot | SlotName   

第2页:

NetID | StartTime| EndTime | SlotName

所以我需要做这些事情:

  • 如果TimeSlot(Sheet1)处于StartTime&之间。结束时间(表2)和NetID(表1)== NetID(表2) - >然后填写相应的SlotTime(sheet2)INTO Sheet1的SlotName列。

任何人都可以帮我这个??? 请参阅我上传的照片以更好地查看数据

SAMPLE DATA I'm USING

1 个答案:

答案 0 :(得分:0)

首先,您需要确保您使用的时间格式在两张纸上是一致的。不要在一侧使用9pm,在另一侧使用09:00:00。使用以下格式:HH:mm:ss。

其次,在您的示例中,第一个工作表中的一个NetID在第二个工作表上没有匹配项。 (GHI< IJK)。我以为这是一个错误。如果不是,下面的公式将返回错误。

最后,答案是:

=IF(AND(B1>=INDEX(Sheet2!B:B,MATCH(A1,Sheet2!A:A,0)),B1<=INDEX(Sheet2!C:C,MATCH(A1,Sheet2!A:A,0))),INDEX(Sheet2!D:D,MATCH(A1,Sheet2!A:A,0)))

如果你将其分解以理解它是这样的:

=IF (

检查第一张纸上的时间段是否在第二张纸中定义的相关时间范围之间的条件:

AND(
B1>=INDEX(Sheet2!B:B,MATCH(A1,Sheet2!A:A,0)),
B1<=INDEX(Sheet2!C:C,MATCH(A1,Sheet2!A:A,0)))

注意:MATCH(A1,Sheet2!A:A,0)有助于定义第二张纸中相关的范围。 并且使用相同的逻辑,输出返回时隙的名称:

INDEX(Sheet2!D:D,MATCH(A1,Sheet2!A:A,0))