Google Spreadsheet-在Google电子表格gantt图表中检测人的重叠项目

时间:2019-05-26 21:59:53

标签: google-sheets spreadsheet google-sheets-api google-sheets-formula

我有一个电子表格,其中包含分配给给定人员的项目列表,以及列列表,其中每列是一周中的星期一,而周数是递增的。我想快速检查一下,在给定的一周内,是否给一个人分配了一项以上的任务(并尽可能说明每人重叠的任务的名称)

示例

             |        |    Problem ?  |    YES  |    NO  |     NO  |
Project Name | Person | start |  end  | July 1  | July 8 | July 15 | ...
--
ProjectA.1   | Luc    | jul-1 | jul-4 | ====    |        |         |
ProjectA.2   | Luc    | jul-5 | jul-6 |     =   |        |         |
ProjectA.3   | Maria  | jul-5 | jul-6 |     =   |        |         |
ProjectB.1   | Luc    | jul-3 | jul-6 |   ===   |        |         |

我想发现,对于给定的一周(例如7月1日那一周),“ Luc”在7月1日的栏中没有计划,因为存在重叠(实际上有2个重叠:两个都是ProjectA)。 1与ProjectB.1,ProjectA.2和ProjectB.1)。

“理想”解决方案应该能够在“问题?”中指出列(例如,逗号分隔)

  • 日程安排重叠的人的名字
  • 进度重叠的项目的名称

但是最小的解决方案只需要计算,如上面的示例中所示,如果至少有一个重叠,则为“是”,如果没有任何重叠,则为“否”(计算TRUE / FALSE)

注意:此示例说明了一个非常前卫的极端情况,即一个人可能在同一周内有多个项目而没有重叠(对于ProjectA.1 + ProjectA.2就是这种情况,其中分配了luc,但是它们的开始/结束位置是不同的日子没有重叠)

我希望有一个公式,但是如果太难了,我想拥有一个可以手动运行以运行示例中的这些检查并手动填充“问题?”的自定义脚本会很好。行。我可能可以提出合适的Google脚本,但我真的很期待一个可以自动更新的Google公式(并且不会占用太多计算资源)

也许另一个想法是在单独的工作表中计算重叠列表,然后我只需要“挑选”属于给定一周的重叠即可填充“问题?”列?您对此有想法吗?

1 个答案:

答案 0 :(得分:1)

好吧,我认为这很困难,但这是一个公式,用于计算一个人的重叠次数:

=ArrayFormula(max(mmult(transpose(row(A$4:A$7))^0,if((transpose(ROW(indirect(E$2&":"&E$2+6)))>=C$4:C$7)*
(transpose(ROW(indirect(E$2&":"&E$2+6)))<=D$4:D$7)*(B$4:B$7=$B4),1,0))))

这个想法是轮流查看一周中的每一天,看看一个人分配了多少个项目日。这是使用标准方法完成的,以获取2D数组的列总数。

enter image description here