0

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

我感兴趣的表格有我感兴趣的 3 列amount和一个to and from日期。

OnSheet1 B13我想做一个=sum()on ,但仅当日期在该范围内Sheet2:D5:D:100时才将其添加到总数中。B1

我可以很好地对列求和,甚至可以根据使用日期对一行求和-sumifs(),但不知道从哪里开始解决这个问题。我想我需要使用 count() 什么的?

我不一定要寻找一个直接的答案,而是对 autocalc 的粗略解释,以便将来我可以轻松地做这种事情!

在此处输入图像描述

4

3 回答 3

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))
于 2013-07-12T13:35:57.603 回答
1

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

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

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

  1. 第一组内括号 (B1>Sheet2!$D$5:$D$100) 检查 B1 中的日期是否大于另一张表中的第一个日期。这评估为 1 为真,0 为假。
  2. 第二组内括号(B1
  3. 如果两个条件都为真,则相乘的这些 1 或 0 值仅是 1 。因此,当日期对齐时,第三部分开始发挥作用,并计算总和。
  4. 此公式是一个数组公式,因为这些操作中的每一个都应用于您定义的范围内的每一行

要在 Excel 中输入数组公式,您必须使用 CTRL + SHIFT + ENTER 输入公式。花括号 { } 将出现在公式周围。它看起来像

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

如果它起作用了。如果您不能完全理解,请发表评论,我会帮助您。

于 2013-07-12T13:24:55.077 回答
0

假设您有几个日期要计算这个总和(从 C1 的第一部分开始),我会以三种方式之一进行设置。

使用带有额外列的额外工作表,其中 dateLowerBound < date < dateUpperBound 为您在 sheet1 中的每个日期计算,并使用SUMIF该额外列作为键。

使用DSUM它可以支持复合标准,但它的语法似乎总是让我对考虑使用DSUM.

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

于 2013-07-12T13:06:36.070 回答