我在将数据填充到复合折线图中时遇到了一些困难
工作日我有以下数据(星期日,星期一,星期二......星期六)*小时(0,1,2,3 ... 23)*分钟(0/30)
day hour minutes unique_counts
sunday 0 0 922
sunday 0 30 1011
sunday 1 0 1239
...
sunday 23 0 737
sunday 23 30 985
monday 0 0 1406
...
monday 23 0 545
monday 23 30 666
...
tuesday 0 0 829
...
tuesday 14 0 3059
...
tuesday 23 30 834
...
wednesday 23 30 874
...
thursday 23 30 839
...
friday 23 30 637
...
saturday 23 30 683
是否可以将此结构填充到图表中?因为我正在进行大量的手动过程,例如将各个工作日及其各自的值重新排列到单独的列中以创建图表。我有10张相似的表格来重复这个过程。有没有办法自动化工作表或这些数据的任何通用程序来生成图形图?
X-Axis - hour&minutes (00:00, 00:30, 01:00,...23:00, 23:30)
Y-Axis - unique_counts (x,y,z ....)
individual data line for sunday/monday/tuesday/wednesday/thursday/friday/saturday
P.S:如果这是一个简单的过程,请原谅。我对excel不太熟练。我和一个比我更了解的人谈过,他的建议是在将数据重新排列到单个列并将其应用于多个表时记录宏。至于,我需要更多建议,我在这里发布这个问题。
谢谢!
编辑[13/08/2014]: 我刚才有机会研究数据透视表。创建了一个连接小时/分钟字段的新时间列。但是,仍然需要为每张纸做一些手动过程来生成枢轴数据和图表。
答案 0 :(得分:0)
我改变了......
使用以下公式添加列D:
D2 -> =B2+C2/60
拥有时间价值。使用宏:
Dim Sr, e, i As Integer
e = 2
Sr = 1
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
For i = 2 To 9999
If (Cells(i, 1).Value = "") And (e + 1 = i) Then Exit For
If Cells(i, 1).Value <> Cells(e, 1).Value Then
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(Sr).XValues = Range("D" & e & ":D" & i - 1)
ActiveChart.SeriesCollection(Sr).Values = Range("E" & e & ":E" & i - 1)
ActiveChart.SeriesCollection(Sr).Name = Cells(e, 1).Value
e = i
Sr = Sr + 1
End If
Next
代码生成多线图 不添加列:
Dim Sr, e, i, k As Integer
Dim Stri As String
e = 2
Sr = 1
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
For i = 2 To 9999
If (Cells(i, 1).Value = "") And (e + 1 = i) Then Exit For
If Cells(i, 1).Value <> Cells(e, 1).Value Then
Stri = "{"
For k = e To i - 1
Stri = Stri & (Cells(k, 2).Value + Cells(k, 3).Value / 60) & ";"
Next
Stri = Mid(Stri, 1, Len(Stri) - 1) & "}"
Stri = Replace(Stri, ",", ".")
Stri = Replace(Stri, ";", ",")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(Sr).Formula = "=SERIES(""" & Cells(e, 1).Value & """," & Stri & "," & ActiveSheet.Name & "!" & Range("D" & e & ":D" & i - 1).Address & "," & Sr & ")"
e = i
Sr = Sr + 1
End If
Next
新代码重建了图表的公式...
仔细使用第二个代码,因为数字是像“,”那样的显示器,但插入像“。”。
那就是替换功能的原因。