检查两栏之间是否有冲突的分配日期

02/03/22
接受

长期读者,第一次贴海报——这张已经难倒了一些人。

我有各种各样的活动,有开始日期和结束日期。工作人员被分配为第一指南或第二指南(区分他们被分配的角色是至关重要的)。

指南时间表conflict.png的示例


我正在寻找一种方法弹出一个警告符号时,其中一个名称被分配到冲突的事件。挑战在于,我们需要寻找“第一指南”中的冲突,“第二指南”中的冲突,以及两者之间的冲突。

这个公式似乎适用于在单个列中检查冲突:

=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。杰夫·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列“非空白”时,该条件格式将高亮显示第一指南或第二指南单元格。

  • 杰夫·M。杰夫·M。 ✭✭
    ✓回答

    哦,是的,我忘了在我的第一反应中加上这部分。使用这些字母的原因是我创建了新的帮助器列,并将它们命名为A、B、c。我使用它们来排除和纠正交叉标志公式返回的错误消息。当使用COUNTIFS公式时,整个公式的列的范围需要相等。因为交叉检查公式同时计算第一指导栏和第二指导栏,所以我添加了将添加到每个日期栏的助手栏(例如[开始日期]:[助手栏A]和[结束日期]:[助手栏B])

    另外,你要确保“助手列”直接挨着另一个日期列,这样列的范围是有效的。添加列之后,您可以选择立即隐藏帮助器列。

答案

  • 杰夫·M。杰夫·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列“非空白”时,该条件格式将高亮显示第一指南或第二指南单元格。

  • 我觉得你说对了!我只是没有完全理解“交叉检查旗帜”公式中“A”和“C”指的是什么,我想我需要把我的头脑放在这个公式上,以便让它发挥作用。

    ...(开始日期):@cell < =(结束日期)@row[结束日期]:C…


    但这比单一的怪物公式要优雅得多!

  • @Jeff M。哦,忘记在我上面的回复中标记你了——在这里转发

    我觉得你说对了!我只是没有完全理解“交叉检查旗帜”公式中“A”和“C”指的是什么,我想我需要把我的头脑放在这个公式上,以便让它发挥作用。

    ...(开始日期):@cell < =(结束日期)@row[结束日期]:C…

    但这比单一的怪物公式要优雅得多!

  • 杰夫·M。杰夫·M。 ✭✭
    ✓回答

    哦,是的,我忘了在我的第一反应中加上这部分。使用这些字母的原因是我创建了新的帮助器列,并将它们命名为A、B、c。我使用它们来排除和纠正交叉标志公式返回的错误消息。当使用COUNTIFS公式时,整个公式的列的范围需要相等。因为交叉检查公式同时计算第一指导栏和第二指导栏,所以我添加了将添加到每个日期栏的助手栏(例如[开始日期]:[助手栏A]和[结束日期]:[助手栏B])

    另外,你要确保“助手列”直接挨着另一个日期列,这样列的范围是有效的。添加列之后,您可以选择立即隐藏帮助器列。

  • 非常感谢@Jeff M。!!这一方法非常有效,比起我们之前使用的怪物公式,这是一个更优雅的解决方案。另外,如果我的调度人员需要查看冲突警告是给谁的,他们可以点击日历应用程序中的行。

登录注册置评。