复杂的SUM公式

时间:2016-08-09 10:58:06

标签: excel

我正在努力想出一个公式来解决以下问题。我有两列“记录计数”和“实际小时数”,其中记录计数大于1我需要在实际小时内对数据求和。如果可能的话我只想使用一个公式,我能看到的最大记录数是5。

因此,如果您查看下面的图片,那么我希望看到的有5条记录的行是15.75。

这将是1.19,1.75,2.31,3.5和7的总和,因为这些都与单个客户有关。

enter image description here

3 个答案:

答案 0 :(得分:1)

看起来像SUMIF()的任务:

=SUMIF(A:A,">1",B:B)

(假设A:A是' Recoud Count'列,B:B是'实际小时')

这将为您提供记录数超过1的小时数。

答案 1 :(得分:1)

看起来你想要获得每个clientid的总时间。在这种情况下,客户端是否有一个或多个记录并不重要。假设,clientid是列C和实际小时列D,在B2中输入= SUMIF(C:C = C2,D:D)。一直复制下来。

答案 2 :(得分:0)

从第二条记录开始,您可以进行部分总和。这里B是记录计数,C是客户ID,D是实际小时。对于第二行(E2):

=IF(AND(B2>0,C2=C1),E1+D2,IF(C2>0,D2,0))

对于A2:

=IF(C3=C2,"",E2)

它使用两个公式,需要将整个表向下移动一行,并且只对每个客户端放置一个条目。如果这对你有用 - 试一试。

如果您不想移动数据,可以将此公式粘贴到E2中:

=IF(ROW(E2)==1,IF(B2>0,D2,IF(C2>0,D2,0)),IF(AND(B2>0,C2=C1),E1+D2,IF(C2>0,D2,0)))

如果行是第一行,则忽略上面的行(避免使用nullPointerException)。如果该行是第二行或更低行,则可以进行比较以查看用户标识的边界。

相关问题