在 Excel 中的两个表中查找同一用户的匹配日期

在 Excel 中的两个表中查找同一用户的匹配日期

我有两个列表,每个列表都包含不同用户的时间段列表。我想确定一个列表中特定用户的开始日期与另一个列表中用户停止日期相同(或者如果可能的话,在 1 天内,但我会满足于完全匹配)的地方,反之亦然。

列表 1

User        Start       Stop
User1       1/1/2014    3/15/2014
User1       6/1/2014    12/1/2015
User2       3/1/1998    9/2/2016
User3       4/10/2007   3/5/2011
User3       9/6/2013    9/8/2013
User3       5/20/2014   5/25/2014

清单 2

 User      Start        Stop
 User1     3/15/2014    5/31/2014
 User1     12/5/2014    2/10/2016
 User1     8/2/2016     1/1/2017
 User2     5/15/2010    6/25/2010
 User2     2/1/2012     3/1/2012
 User3     6/1/2012     9/5/2013
 User3     4/25/2014    2/8/2017

在上面的例子中:

  • 用户 1 的第一个条目中的停止日期与列表 2 中用户 1 的第一个条目中的开始日期相同。没有其他匹配的日期,因此我只想突出显示该事件。

  • 对于用户 2,列表 1 显示了一个很长的时间范围。尽管列表 2 有两个时间范围完全在列表 1 的时间范围内,但开始/停止日期并不相同,因此它们没有意义。

  • 对于用户 3,列表 1 中第一个条目的开始日期是列表 2 中用户 3 的第一个条目的停止日期的后一天。所以我想以某种方式突出显示这一点。其他时间段没有任何关联,因此它们没有意义。

有人能帮我找到我的匹配项吗?我有数千行。谢谢!

编辑:

以下是显示我所在位置的屏幕截图 -

在此处输入图片描述

在此处输入图片描述

答案1

要检查完全匹配,最简单的方法可能是使用COUNTIFS
=OR(COUNTIFS(List2[User],[@User],List2[Start],[@Stop]),COUNTIFS(List2[User],[@User],List2[Stop],[@Start]))

如果要寻找 1 天的差异,您需要使用SUMPRODUCT
=OR(SUMPRODUCT((List2[User]=[@User])*(ABS(List2[Start]-[@Stop])<=1)),SUMPRODUCT((List2[User]=[@User])*(ABS(List2[Stop]-[@Start])<=1)))

在下面的例子中,我在 list1 的新列中添加了计算,您可以将其添加到两个列表中并过滤匹配项。

在此处输入图片描述

您可以通过公式选项卡 - “评估公式”逐步查看计算过程

相关内容