我在Excel中有以下数据。
项目|月|呼叫已创建|打开电话|已关闭的电话
请求| 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
数据只是一小部分。对于完整数据集,将有四个项目,日期范围从2012年到2014年6月
我正在尝试创建一个图表,对于月份和每个项目,数据都是条形堆叠,而上面的X轴是月份
我附上了一份我希望制作的图表模型
如果我只想使用Calls Created,Open Calls,Closed Calls,我可以创建堆积条形图。但是我需要一个将所有三个结合起来的图表
答案 0 :(得分:1)
我告诉你我的想法。如果可以的话,它很容易适应...... 遵循该计划:
你有类似的东西,但使用简单的图表栏。诀窍是以正确的方式转换数据。为此,我使用了VBA,因为它更灵活......
在连接到按钮的模块内使用此代码(更新)......:
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
宏为图表生成新范围数据...空白行用于视觉分割Mounth底部的条形图...
之后,手动或者您更喜欢通过VBA,您可以调整图表(减小间隙宽度,添加标签......)