如何提取excel图表里的数据

从别的地方拷来excel,里面只有做好的图表,但没有源数据,想要获得源数据怎么办~数据量极大,有没有简单的方法?

有图表就有数据源,如果将图表复制成图片,才可以没有数据源。
如果你看到的是真正的图表,就说明源数据是存在的。所以请在图表上右键,或在“图表工具”的“设计”选项卡上单击“选择数据”,则可在弹出的对话框中看“图表数据区域”指向了哪个区域。
如果你在工作簿里没有看到这个数据区域,说明这个区域被隐藏了,取消隐藏即可看到数据。追问

图表是复制过来的,只有表,没看到数据~如果被隐藏了,怎么取消隐藏呢

追答

在图表上右键,弹出菜单有没有出现“选择数据”?
或者选择图表后,是否出现“图表工具”?
如果出现,请单击“选择数据”,看看“图表数据区域”里是什么内容。
如果没有出现,说明只是一个图片,不是图表。

取消隐藏分两种情况,若只是隐藏的行或列,可选择隐藏的行或列,右键-取消隐藏。
如果是隐藏了工作表,则在工作表标签上右键-取消隐藏。

如果数据源是在另外的工作簿,则只能用VBA来提取了。
新建工作表或重命名一个工作表,起名ChartData。
建一模块,并将下面代码粘贴到模块中
Sub GetChartValues()
Dim NumberOfRows As Integer
Dim X As Object
Counter = 2
NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values)
Worksheets("图表数据").Cells(1, 1) = "X Values"
With Worksheets("图表数据")
.Range(.Cells(2, 1), .Cells(NumberOfRows + 1, 1)) = Application.Transpose(ActiveChart.SeriesCollection(1).XValues)
End With
For Each X In ActiveChart.SeriesCollection
Worksheets("图表数据").Cells(1, Counter) = X.Name
With Worksheets("图表数据")
.Range(.Cells(2, Counter), .Cells(NumberOfRows + 1, Counter)) = Application.Transpose(X.Values)
End With
Counter = Counter + 1
Next
End Sub

然后选择要从中提取数据的图表并运行这个代码宏。

温馨提示:答案为网友推荐,仅供参考
相似回答