SUM(IF)只查找数组中的第一个值,有时

时间:2016-07-25 10:46:23

标签: arrays excel sum sumifs

我有一张带有2张纸的Excel电子表格,sheet1是从sharepoint时间表系统导出的,sheet2用于报告目的,主要显示按周计算的时间细分。

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

到目前为止,我已经尝试了SUMIF,SUMPRODUCT和现在的SUM(IF)公式并且都有相同的问题,他们要么没有找到SUM的值(肯定存在的值),要么只是SUM数组中的第一个值。例如,对于周末启动" 12/06 / 2016"我应该总共336小时,但目前它只找到列表中的第一个值,14。到目前为止我尝试使用的不同公式如下:

{=SUM(IF(sheet1!$AI$2:$AI$300=CB$3,sheet1!$G$2:$G$300,0))}

=SUMIF(sheet1!AI$2:AJ$300, CB$3, sheet1!G$2:G$300)

=SUMPRODUCT( -- (sheet1!$AI$2:$AI$300 = CB$3), sheet1!$G$2:$G$300)

所有公式都有相同的问题,并为表2中的每一列产生相同的值,这让我怀疑它与我的周开始计算/数组有关但我不能这样做弄清楚导致它的原因。当前生成的值的示例以及低于该值的预期值:

 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

1 个答案:

答案 0 :(得分:2)

第一张上的“日期”列包含日期和时间组件。

一个修复:将您的周开始公式更改为:

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

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

  

2016/6/16 10:27:37

存储为

  

42527.4358449074

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

enter image description here

您的SUMIFSUMPRODUCT功能现在也可以正常使用。