首页 > 解决方案 > SUM UNIQUE 除了...?

问题描述

好的,这可能会让人感到困惑,但我会尽力描述它。

我正在尝试计算完成任务所需的天数。所以我有一个电子表格,其中列出了任务、分配时间并分配一个人来完成该任务。

因此,假设任务 1 有 5 个子任务,每个子任务需要 8 小时。如果我将 Bill 分配给每个任务,Bill 将需要 5 天时间来完成任务 1。这很容易。

现在,如果 Bill 需要 5 天来完成任务 1,但最后期限是 4 天,我只需从 Bill 那里拿 1 个子任务分配给 Bob,和 viola……我们现在有 40 小时的工作时间4天内完成。

我所有这些都使用以下公式:

=MAX(SUMIFS('Task List'!Q:Q,'Task List'!T:T,UNIQUE('Task List'!T:T),'Task List'!D:D,"<>"&"*Summary"))

该公式向下查找列 T 并找到任何唯一名称。然后它基本上将这些时间与其他时间(从 Q 列)同时发生,因为 Bill 和 Bob 可以同时工作。另一种看待它的方式是:分配给他们任务最多的人正在控制结束日期,因为这是完成所有事情所需的“最长”时间。

现在问题...

每个项目结束时总会有一项任务,称为“烘焙”。“烘焙”将始终在 H 列中。烘焙将始终分配给不在项目中的 UNIQUE 人……因此 Bill 和 Bob 将成为团队的一部分,但 Baking 将始终是不同的 Unique 人。

所以发生的事情是上面的公式减去了烘焙线,因为它是一个唯一的名称。

但我不想那样。烘焙任务将始终在其他任务完成之后发生,并且在 Bill 和 Bob 正在执行他们的任务时无法完成。

所以,我需要公式说的是,“查看 T 列是否有任何唯一名称,并添加出现最多的人的小时数,但如果 G 列中有“烘焙”,则忽略这一点,并始终正常添加这些小时数。 "

如果有帮助,下面的第一张图片应该返回完整的“80”值,因为比尔正在完成所有任务,而贝克在比尔完成后正在烘烤,所以项目的总时间是 80 小时。但是,上面的公式返回“70”,因为“贝克”是唯一的。

任务清单 1

这个应该返回 70,因为 Bob 从 Bill 的盘子上花了 10 个小时,但同样,Baker 发生在所有任务完成之后(Bill:40+10+10 + Baker 10):

任务清单 2

标签: excelexcel-formula

解决方案


=SUMPRODUCT(--(E:E<>""),Q:Q)+MAX(SUMIFS(Q:Q,T:T,UNIQUE(T:T),F:F,"<>"&""))+SUMPRODUCT(--(G:G<>""),Q:Q) 这也可以解决问题。寻找收集原料的时间+独特员工的最大时间+烘烤的时间。


推荐阅读