2017-01-23 129 views
0

我想创建一个图表,看起来像这样创建动态Excel图表VBA

enter image description here

在我的x轴我想有我这样的日期,例如2016年1月1日 在我的Y轴应该有多少发生在该日期例如此事件AA号码4

到目前为止好我的数据怎么样子,我想创建我的图表上方:

FailureLogStart 
2017-01-09 18:20 
2017-01-14 14:23 
2017-01-14 15:14 
2017-01-15 11:05 
2017-01-16 09:36 
2017-01-16 10:02 
2017-01-16 10:23 

这是我可以用来创建我的图表的唯一列,因此Y轴的值应该是没有时间的日期,x轴是每个日期的发生次数,例如14 。

我迄今所做的:

Sub Test() 
    Range("Table_Query_from_WatchDog_DB_1[[#All],[FailureLogStart]]").Select 
    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select 
    ActiveChart.SetSourceData Source:=Range("'Controll & Data'!$C$18:$C$25") 
    ActiveSheet.Shapes("Chart 6").IncrementLeft 518.4782677165 
    ActiveSheet.Shapes("Chart 6").IncrementTop -308.4782677165 
End Sub 

我有现在的问题是,我想有日期,相反是在Y:Axix和事件都放在X:轴

(顺便说一句我怎么能只选择没有时间日期)

+1

你有没有考虑使用枢轴和枢轴表? – Wujaszkun

+0

@Wujaszkun一点都没有,你认为这会让我的生活更轻松吗? –

+0

我会这样做的方式是设置一个表来源数据将被存储,然后连接一个数据透视表到(所以源范围将动态改变基于表中的记录数),并最终添加一个数据透视图。在VBA中进行设置和维护要容易得多。 – Wujaszkun

回答

1

正如我们一开始的命令后的第一次,我会使用数据透视表指出/图显示此数据:

View of all objects

短日期被计数与式:=ROUNDDOWN([@FailureLogStart],0)

透视表配置:

行标签 - >短日期

值 - 短日期

的>计数

来源 - >表1(放在这里你的名字)

编辑:一步一步透视表制备:

  1. 准备好输入 - >格式数据如表

Step One

  • 标记您的表格 - >(色带)插入 - >数据透视表:

    a。设置表格/范围字段 - >表格1(或您的表格名称)

    b。在底部勾选“现有工作表”并放置一个单元格地址,以便放置数据透视表。

    c。完成后,将在您的工作表中插入空白数据透视表。现在在右侧面板中将“短日期”拖放到“行标签”和“值”字段。

  • 点击支点 - >(丝带)透视表选项 - >透视图

  • +0

    btw添加此代码的自动更新数据透视表的代码:Private Sub Worksheet_Activate() 表(“透视表”).PivotTables(“PivotTable1”)。RefreshTable End Sub –

    +0

    图表连接到数据透视表,所以它只会响应枢轴过滤器。如果您需要在数据透视表中查看摘要背后的记录,只需双击数字,例如'2017-01-16 \t 3',单击'3',您将得到一张包含源数据的新表。 – Wujaszkun

    +0

    非常感谢您的努力和时间,帮助我! –