(VBA)提取并复制和粘贴相应行值的指定日期范围的列值

时间:2016-11-01 12:58:12

标签: excel vba excel-vba

我已经坚持了一段时间了。我需要的是标题 - 我拥有的是:

表1:
10亿个主要是不必要的列。

Column D: Values I need         Column F:         Column M:
Revenue                         Names             Date

12                              John              1/24/2016  2:40:02 AM
15                              Sarah             3/2/2016   4:35:17 PM
14                              Sarah             7/17/2016  1:50:10 PM
20                              Matt              8/20/2012  4:16:12 AM
10                              John              11/19/2015 5:04:05 AM
etc.                            etc.

当前第2页:数据透视表*

Row Label:                  
Sarah     
Matt
John
etc.

所需第2页数据透视表+ *

Row Label:             Column __:  
                       Revenue

Sarah                  29
Matt                   0 *(note: see below, but = 0 because Matts value corresponded to date 2012)
John                   22
etc.

关于表2的重要之处在于,我想告诉VBA在工作表中找到最近的最空的列,并从S1中输入D列的值(和重复的总和),但只能求和范围内的值和提取值从今天的日期到11个月之前。目前我制作了一个模块来自动为下一张工作表创建一个数据透视表,但我想在上面添加一段时间,只是卡住了。

我还假设如果我告诉VBA提取相应行标签名称的数据,我将不必指定总和?我正在考虑将第2页上的Begin Date和End Date单元格引用,或者以某种方式使用TODAY()函数作为日期,但不确定如何指定从今天到日期范围的提取和求和值11个月前。

编辑:*请注意这是我目前情况的淡化版本,一切都更大,以避免混淆,枢轴是必要的,但我选择为了这个问题稀释它。

1 个答案:

答案 0 :(得分:0)

你真的需要一个数据透视表吗?

如果你不这样做,只需创建一个包含所有名称的新工作表,为要考虑的开始日期设置一个单元格,然后执行= sumifs

例如

在Sheet2 B1上你放了1/24/2016。 然后在A2上插入名称(例如Sarah) 在B2上你放了公式

=Sumifs(Sheet1!D:D,Sheet1!F:F,A2,Sheet1!M:M,">"&B$1)

之后,只需输入名称列表并在每个名称旁边拖动公式。

*我的excel是葡萄牙语,所以公式可能还需要其他一些调整才能工作。