在Excel中分组堆积图表

我在Excel中有以下数据。

项目| 月| 创build的电话| 打开电话| closures的电话

请求| 2012年12月| 15 | 11 | 7

请求| 2013年1月| 6 | 8 | 9

请求| 2013年2月| 6 | 5 | 2

dotcom | 2012年12月| 1 | |

dotcom | 2013年1月| | 1 |

dotcom | 2013年2月| 1 | 2 | 1

数据只是一小部分。 对于完整的数据集,将有四个项目,date范围从2012年到2014年6月

我正在尝试创build一个图表,即月份和每个项目的数据是堆叠的,而上面的X轴是月份

我附上了我正在制作的图表模型 图表图像必需

如果我只想使用创build的呼叫,打开的呼叫,closures的呼叫之一,我可以创build堆积的条形图。 不过,我需要一个将所有三个结合起来的图表

我向你展示我的想法。 如果没关系,很容易适应…
遵循该计划:

在这里输入图像描述

你有像你需要的东西,但使用一个简单的图表栏。 诀窍是以正确的方式转换数据。 要做到这一点,我已经使用VBA,因为它更灵活…
在连接到button(更新)的模块中使用此代码…:

Dim N0(1 To 100) As String Dim N1(1 To 100) As String Dim N2(1 To 100) As String Dim N3(1 To 100) As String Range("B14:H44").Clear Range("B1").Select e = 0 For i = 1 To 9999 If ActiveCell.Offset(i, 0).Value = "" Then Exit For e = e + 1 N0(e) = ActiveCell.Offset(i, 0).Value N1(e) = ActiveCell.Offset(i, 1).Value N2(e) = ActiveCell.Offset(i, 2).Value N3(e) = ActiveCell.Offset(i, 3).Value Next Range("B15").Select For i = 1 To e If (i > 1) And (N0(i) = N0(1)) Then Exit For ActiveCell.Offset((i - 1) * 4, 0).Value = "[" ActiveCell.Offset((i - 1) * 4 + 1, 0).Value = N0(i) ActiveCell.Offset((i - 1) * 4 + 2, 0).Value = "]" ActiveCell.Offset((i - 1) * 4 + 3, 0).Value = "" Next nRep = i - 1 Debug.Print nRep nrow = 0 For i = 1 To e If (i > nRep) And (N0(i) = N0(1)) Then nrow = nrow + 1 For k = 1 To 99 If ActiveCell.Offset((k - 1) * 4 + 1, 0).Value = "" Then Exit For If ActiveCell.Offset((k - 1) * 4 + 1, 0).Value = N0(i) Then ActiveCell.Offset((k - 1) * 4, 1 + nrow).Value = N1(i) ActiveCell.Offset((k - 1) * 4 + 1, 1 + nrow).Value = N2(i) ActiveCell.Offset((k - 1) * 4 + 2, 1 + nrow).Value = N3(i) End If Next Next 

macros为图表生成新的范围数据…空白行用于视觉划分基于Mounth的酒吧…
之后,手动或者如果你喜欢通过VBA,你可以调整图表(减less间隙宽度,添加标签…)