我正在努力想出一个公式来解决以下问题。我有两列“记录计数”和“实际小时数”,其中记录计数大于1我需要在实际小时内对数据求和。如果可能的话我只想使用一个公式,我能看到的最大记录数是5。
因此,如果您查看下面的图片,那么我希望看到的有5条记录的行是15.75。
这将是1.19,1.75,2.31,3.5和7的总和,因为这些都与单个客户有关。
答案 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)。如果该行是第二行或更低行,则可以进行比较以查看用户标识的边界。