SUM(IF) 仅在数组中找到第一个值,有时

SUM(IF) only finds first value in an array, sometimes

我有一个 excel spreadsheet 2 sheets,sheet1 是从共享点时间 sheet 系统导出的, sheet2 用于报告目的,主要显示按周细分的时间。

我需要一个计算小时值 (sheet1!G:G) 的公式,其中 sheet1 中的周开始日期列(sheet1!AI:AI,使用 =D2-WEEKDAY(D2-1) 计算)匹配sheet2(第 3 行)中的周开始行。

到目前为止,我已经尝试过 SUMIF、SUMPRODUCT 和现在的 SUM(IF) 公式,但都遇到了同样的问题,它们要么没有找到 SUM 的值(肯定存在的值),要么只会对数组中的第一个值。例如,对于从“12/06/2016”开始的一周,我应该总共有 336 小时,但目前它只能在列表中找到第一个值 14。到目前为止,我尝试使用的不同公式如下:

{=SUM(IF(sheet1!$AI:$AI0=CB,sheet1!$G:$G0,0))}

=SUMIF(sheet1!AI:AJ0, CB, sheet1!G:G0)

=SUMPRODUCT( -- (sheet1!$AI:$AI0 = CB), sheet1!$G:$G0)

所有公式都有相同的问题,并为 sheet 2 中的每一列生成相同的值,这让我怀疑这与我的周开始有关 calculation/array 但我无法解决是什么原因造成的。当前产生的值低于预期值的示例:

 05/06/2016 12/06/2016  19/06/2016  26/06/2016
 0.00       14.00       0.00        11.00

 05/06/2016 12/06/2016  19/06/2016  26/06/2016
 82.85      336.00      297.75      307.25

包含数据和公式的示例文件 - https://www.dropbox.com/s/5c2c5tyl993vxyt/SUMIF%20Example.xlsx?dl=0

您在 sheet 上的日期列包括日期和时间部分。

一个解决方法:将您的周起始公式更改为:

=INT(A2-WEEKDAY(A2-1))

Excel 将日期存储为整数,其中 1 = 1 Jan 1900。时间存储为一天的小数部分。因此,例如,您在 Sheet1!A2 中的第一个条目实际上是:

6/6/2016 10:27:37 AM

存储为

42527.4358449074

通过删除小数部分,您可以在 sheet2 上匹配您的周开始数据并获得所需的结果。

您的 SUMIFSUMPRODUCT 功能现在也将正常工作。