根据落在每行2个相邻单元格之间的另一个值,在Excel中对列进行求和

时间:2013-07-12 12:47:37

标签: excel

我有一个excel电子表格,可以对一系列帐户的直接借记进行分析, 我有一个查找表"Sheet2",如图所示,其中包含我需要的信息。

我感兴趣的表格包含我感兴趣的3列,amountto and from日期。

Sheet1 B13我希望在=sum()Sheet2:D5:D:100,但只会将B1中的日期添加到-sumifs()范围。

我可以对列进行求和,甚至可以使用{{1}}根据日期对行进行求和,但不知道从哪里开始这个问题。我假设我需要使用count()或什么?

我不一定要找到一个直接的答案,而是对autocalc的粗略解释,这样我将来可以很容易地做到这一点!

enter image description here

3 个答案:

答案 0 :(得分:2)

简单的旧sumifs?

    A       B           C
1       2013-03-14  
2   6   2013-01-01  2013-01-02
3   8   2013-03-12  2013-03-23
4   5   2013-05-21  2013-06-01
    =SUMIFS(A2:A4;B2:B4;CONCATENATE("<=";B1);C2:C4;CONCATENATE(">=";B1))

答案 1 :(得分:1)

我认为你最好使用与你的总和混合的数组公式。像

这样的东西
=SUM((B1>Sheet2!$D$5:$D$100)*(B1<Sheet2!$E$5:$E$100)*Sheet2!$C$5:$C$100)

现在发生的事情发生在几个部分:

  1. 第一组内括号(B1&gt; Sheet2!$ D $ 5:$ D $ 100)检查B1中的日期是否大于其他工作表中的第一个日期。对于true,计算结果为1,对于false,计算结果为0。
  2. 第二组内支架(B1
  3. 如果两个条件都为真,则这些1或0值乘以只有1。因此,当日期对齐时,第三部分将进行播放,并计算总和。
  4. 此公式是一个数组公式,因为每个操作都应用于定义范围内的每一行
  5. 要在Excel中输入数组公式,必须使用CTRL + SHIFT + ENTER输入公式。公式周围将出现卷曲括号{}。它看起来像

    {=SUM((B1>Sheet2!$D$5:$D$100)*(B1<Sheet2!$E$5:$E$100)*Sheet2!$C$5:$C$100)}
    

    如果有效的话。只要评论一下,如果你不能得到它,我会帮助你。

答案 2 :(得分:0)

假设你有几个日期,你想要通过这个总和(从C1的第一部分),我会用三种方式之一设置它。

使用额外的工作表,其中包含额外的列,其中dateLowerBound&lt;日期&lt; date1pperBound是针对sheet1中的每个日期计算的,并使用SUMIF将该额外列作为键。

使用DSUM可以支持复合条件,但其语法似乎总是让我因为考虑使用DSUM而生气。

编写一个VB宏(假设工作表的结构是合理的静态,并且有明确定义的点,重新计算总计是有​​意义的,你可以将它挂钩到日期单元格的onChanged事件和/或Sheet2数据表区域。