名称和日期范围冲突

名称和日期范围冲突

我正在做一个项目,想在 Excel 中计算日期范围是否会与特定用户发生冲突。

例如(单元格 B2) 有一个从(单元格 C2) 到(单元格 D2)"employee" Bill Smith的项目。如果我为用户输入一个从(单元格 C3) 到(单元格 D3) 的新项目,我希望它标记冲突。10/17/201810/24/201810/18/201810/22/2018

如何才能匹配 B 列中的名称以显示 E 列中突出显示的冲突?

答案1

您可能会找到更简单的公式,但这里有一个。首先,按员工和开始日期对行进行排序。然后使用公式检查上面行的开始日期是否早于结束日期(对于同一名员工)。

如果n是上面的行数(针对同一员工),则公式为=IF(n=0, False, C6<MAX(OFFSET(D6, -n, 0, n, 1)))。计算方法nCOUNTIF(OFFSET(B6, -ROW(B6)+1, 0, ROW(B6)-1, 1), B6)

单元格 E6 中的完整公式为=IF(COUNTIF(OFFSET(B6, -ROW(B6)+1, 0, ROW(B6)-1, 1), B6)=0, FALSE, C6<MAX(OFFSET(D6, -COUNTIF(OFFSET(B6, -ROW(B6)+1, 0, ROW(B6)-1, 1), B6), 0, COUNTIF(OFFSET(B6, -ROW(B6)+1, 0, ROW(B6)-1, 1), B6), 1)))

在此处输入图片描述

答案2

我的解决方案有不同的方法。如果员工姓名重复,公式会检查日期冲突。

公式检​​查Adam行中的日期冲突38 & 39,但不检查Adam & Sam行中的日期冲突39 & 40,因此不检查Sam & Harry

在此处输入图片描述

怎么运行的:

在单元格中写入此公式D39并填写。

=IF(AND(A39=A38),IF(OR(B39>=B38,C39<=C38),"Yes","No"),"Diff. Name")
  • 公式的第一部分检查名称是否相似,如果是,则检查日期是否冲突。
  • 对于新名称,公式返回标题Diff. Name并忽略日期冲突检查。

相关内容