检查两栏之间是否有冲突的分配日期
长期读者,第一次贴海报——这张已经难倒了一些人。
我有各种各样的活动,有开始日期和结束日期。工作人员被分配为第一指南或第二指南(区分他们被分配的角色是至关重要的)。
我正在寻找一种方法弹出一个警告符号时,其中一个名称被分配到冲突的事件。挑战在于,我们需要寻找“第一指南”中的冲突,“第二指南”中的冲突,以及两者之间的冲突。
这个公式似乎适用于在单个列中检查冲突:
=IF((ISBLANK([1st Guide]@row)), 0, IF(COUNTIFS([1st Guide]:[1st Guide], @cell = [1st Guide]@row, [Start Date]:[Start Date], @cell <= [End Date]@row, [End Date]:[End Date], @cell >= [Start Date]@row) > 1,1,0))
这是交叉检查两列的方法,我们无法找到解决方案——通过公式,帮助表,任何可能的工作。
巨大的感谢任何人谁可以破解这个!这将使很多人的生活变得更容易,这将允许我们直接使用日历应用程序来安排日程。
最好的答案
-
杰夫·M。 ✭✭
我想我已经解决了!!!!!!
我创建了一个名为“1st Guide Flag”的列,并插入这个公式。
=IF((ISBLANK([1st Guide]@row)), 0, IF(COUNTIFS([1st Guide]:[1st Guide], @cell = [1st Guide]@row, [Start Date]:[Start Date], @cell <= [End Date]@row, [End Date]:[End Date], @cell >= [Start Date]@row) > 1, JOIN([1st Guide]@row)))
然后是另一个名为“2nd Guide Flag”的列,使用这个公式
=IF((ISBLANK([2nd Guide]@row)), 0, IF(COUNTIFS([2nd Guide]:[2nd Guide], @cell = [2nd Guide]@row, [Start Date]:[Start Date], @cell <= [End Date]@row, [End Date]:[End Date], @cell >= [Start Date]@row) > 1, JOIN([2nd Guide]@row)))
然后是交叉检查的最后一列"交叉检查标志"
=IF(COUNTIFS([1st Guide]:[2nd Guide], @cell = [2nd Guide]@row, [Start Date]:A, @cell <= [End Date]@row, [End Date]:C, @cell >= [Start Date]@row) = 1, JOIN([1st Guide]@row:[2nd Guide]@row))
这些列将返回有冲突的名称。
警告符号可以通过设置条件格式来完成,当对应的Flag列“非空白”时,该条件格式将高亮显示第一指南或第二指南单元格。
1 -
杰夫·M。 ✭✭
哦,是的,我忘了在我的第一反应中加上这部分。使用这些字母的原因是我创建了新的帮助器列,并将它们命名为A、B、c。我使用它们来排除和纠正交叉标志公式返回的错误消息。当使用COUNTIFS公式时,整个公式的列的范围需要相等。因为交叉检查公式同时计算第一指导栏和第二指导栏,所以我添加了将添加到每个日期栏的助手栏(例如[开始日期]:[助手栏A]和[结束日期]:[助手栏B])
另外,你要确保“助手列”直接挨着另一个日期列,这样列的范围是有效的。添加列之后,您可以选择立即隐藏帮助器列。
0
答案
我想我已经解决了!!!!!!
我创建了一个名为“1st Guide Flag”的列,并插入这个公式。
=IF((ISBLANK([1st Guide]@row)), 0, IF(COUNTIFS([1st Guide]:[1st Guide], @cell = [1st Guide]@row, [Start Date]:[Start Date], @cell <= [End Date]@row, [End Date]:[End Date], @cell >= [Start Date]@row) > 1, JOIN([1st Guide]@row)))
然后是另一个名为“2nd Guide Flag”的列,使用这个公式
=IF((ISBLANK([2nd Guide]@row)), 0, IF(COUNTIFS([2nd Guide]:[2nd Guide], @cell = [2nd Guide]@row, [Start Date]:[Start Date], @cell <= [End Date]@row, [End Date]:[End Date], @cell >= [Start Date]@row) > 1, JOIN([2nd Guide]@row)))
然后是交叉检查的最后一列"交叉检查标志"
=IF(COUNTIFS([1st Guide]:[2nd Guide], @cell = [2nd Guide]@row, [Start Date]:A, @cell <= [End Date]@row, [End Date]:C, @cell >= [Start Date]@row) = 1, JOIN([1st Guide]@row:[2nd Guide]@row))
这些列将返回有冲突的名称。
警告符号可以通过设置条件格式来完成,当对应的Flag列“非空白”时,该条件格式将高亮显示第一指南或第二指南单元格。
我觉得你说对了!我只是没有完全理解“交叉检查旗帜”公式中“A”和“C”指的是什么,我想我需要把我的头脑放在这个公式上,以便让它发挥作用。
...(开始日期):@cell < =(结束日期)@row[结束日期]:C…
但这比单一的怪物公式要优雅得多!
@Jeff M。哦,忘记在我上面的回复中标记你了——在这里转发
我觉得你说对了!我只是没有完全理解“交叉检查旗帜”公式中“A”和“C”指的是什么,我想我需要把我的头脑放在这个公式上,以便让它发挥作用。
...(开始日期):@cell < =(结束日期)@row[结束日期]:C…
但这比单一的怪物公式要优雅得多!
哦,是的,我忘了在我的第一反应中加上这部分。使用这些字母的原因是我创建了新的帮助器列,并将它们命名为A、B、c。我使用它们来排除和纠正交叉标志公式返回的错误消息。当使用COUNTIFS公式时,整个公式的列的范围需要相等。因为交叉检查公式同时计算第一指导栏和第二指导栏,所以我添加了将添加到每个日期栏的助手栏(例如[开始日期]:[助手栏A]和[结束日期]:[助手栏B])
另外,你要确保“助手列”直接挨着另一个日期列,这样列的范围是有效的。添加列之后,您可以选择立即隐藏帮助器列。
非常感谢@Jeff M。!!这一方法非常有效,比起我们之前使用的怪物公式,这是一个更优雅的解决方案。另外,如果我的调度人员需要查看冲突警告是给谁的,他们可以点击日历应用程序中的行。