我正在做一个项目,想在 Excel 中计算日期范围是否会与特定用户发生冲突。
例如(单元格 B2) 有一个从(单元格 C2) 到(单元格 D2)"employee" Bill Smith
的项目。如果我为用户输入一个从(单元格 C3) 到(单元格 D3) 的新项目,我希望它标记冲突。10/17/2018
10/24/2018
10/18/2018
10/22/2018
如何才能匹配 B 列中的名称以显示 E 列中突出显示的冲突?
答案1
您可能会找到更简单的公式,但这里有一个。首先,按员工和开始日期对行进行排序。然后使用公式检查上面行的开始日期是否早于结束日期(对于同一名员工)。
如果n是上面的行数(针对同一员工),则公式为=IF(n=0, False, C6<MAX(OFFSET(D6, -n, 0, n, 1)))
。计算方法n是COUNTIF(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)))