在Excel中创建VBA脚本,比较日期和计数事件

时间:2014-03-25 21:30:16

标签: excel vba excel-vba

我正在尝试为excel创建一个VBA脚本,以比较格式为dd / mm / yyyy hh:mm的日期列。 因此,无论时间如何,我都需要打印每天发生的频率,并计算每天发生的事件得分的平均值。我面临的问题是,我有时间在同一个单元格中,所以我无法与第二天进行比较。

例如,如果我在A栏中有以下几天,B栏中有分数

      A                    B

12/02/2010 13:36           3
13/02/2010 07:36           6
13/02/2010 07:33           4
13/02/2010 09:03           3
13/02/2010 20:04           3 
13/02/2010 22:25           4
14/02/2010 09:02           2
14/02/2010 09:03           5
14/02/2010 10:54           6
14/02/2010 10:54           7

我需要在C列和D中的频率以及F列中的分数平均值打印以下几天

   C        D      F   

12/02/2010  1      3
13/02/2010  5      4
14/02/2010  4      5

1 个答案:

答案 0 :(得分:0)

如果您只是想获得此结果,则无需使用VBA。

公式方法

以下假设数据在第2行到第100行

  1. 创建一天的列(显示上面的C列)(制作两个然后向下拖动)
  2. 使用COUNTIFS获取频率:在D2列中添加然后向下复制=COUNTIFS($A$2:$A$100,">="&C2,$A$2:$A$100,"<"&C2+1)
  3. 使用AVERAGEIFS获得平均分数:在F2栏中添加然后复制=AVERAGEIFS($B$2:$B$100,$A$2:$A$100,">="&C2,$A$2:$A$100,"<"&C2+1)
  4. 数据透视表方法

    1. 添加名为&#34; Date&#34;的第三列;或者其他的东西。使用向下复制的公式=Int(A2)获取每个日期时间的日期。确保您的其他列也有标题
    2. 添加一个涵盖数据范围的数据透视表,然后点击其中的任意位置
    3. 在数据透视图字段中拖动&#34;日期&#34;到行标题部分
    4. 拖动&#34;日期&#34;到值框并右键单击数据透视表中的一个值单元格,然后单击 - &gt;总结为&gt;计数。
    5. 将得分列标题拖到“值”框中,类似于步骤4,右键单击并汇总为&gt;平均