从excel中的一系列日期中查找值

时间:2013-06-29 16:16:31

标签: vb.net excel excel-vba excel-2007 vba

请帮忙。

我们有两张桌子。帐户列表,另一个是更改日志。我需要在表1中添加一个新列,其中值是表2中正确帐户和正确有效期的数量。

离。

table 1:
account#   beginning period   ending period
1          January 1, 2012    January 31, 2012
2          January 12, 2012   February 12, 2012

table 2:
account #  amount    valid period beg      valid period end
1           10      january 1, 2009        december 5, 2010
1           20      december 6, 2010       june 1, 2011
1           30      june 2, 2011           december 1, 2012
2           13      january 15, 2011       december 15, 2011
2           20      december 16, 2011      february 20, 2012

感谢。

1 个答案:

答案 0 :(得分:2)

虽然它有点复杂,但可以使用内置函数完成(虽然它看起来有点模糊:-))。具体来说,我的意思是函数SUMIFS。

enter image description here

它有几个参数。

  1. 第一个是要求求和的值的区域。在这个例子中是B8:B12。
  2. 第二个是用某种条件检查值的区域。它是A8:A12。
  3. 第三个是从第二个参数应用于区域的标准。它(除其他外)帐户#。
  4. 所以公式说:对B8中的行中的所有值求和:B12,其中帐户#(A8:A12)等于所需帐户#(例如A3)。

    好的,不是全部,你需要指定时间范围。它会有点笨拙,因为你必须检查两个时间段是否重叠(检查一个日期是否在指定的时间段内会更容易)。 但是可以这样做,因为SUMIFS可以采用另一对标准范围和标准。但它不能用于OR条件,所以你必须结合更多的SUMIFS。

    关于重叠范围的好文章是例如http://chandoo.org/wp/2010/06/01/date-overlap-formulas/

    BTW:您必须将B2:C3和C8:D12中的单元格格式化为能够比较它们的日期。