我使用VBA在Excel 2013中创建一个饼图。一切都像预期的那样工作:图表被绘制,该图表的每个部分都附加了百分比值。
现在我遇到了一个问题,即我得到了大量低于1%数据的部分,这使得该图表非常丑陋而且#34; 0%"零件及其标签。
现在我仍然想要所有馅饼(否则我只是过滤了源数据),但我只想在至少占数据的2%的片段上使用标签。
这可能吗?
Set DataSource = CreatePivotTableCurrFy
If Not (DataSource Is Nothing) Then
' Create chart object
Call ThisWorkbook.Worksheets("META").Shapes.AddChart(xlPie, 600, 200, 504, 360)
Set Co = ThisWorkbook.Worksheets("META").ChartObjects(2)
Co.chart.SetSourceData Source:=DataSource
Co.chart.ChartTitle.Text = "Sales by Brand"
Co.chart.SeriesCollection(1).ApplyDataLabels ShowPercentage:=True, ShowValue:=False
End If
答案 0 :(得分:1)
你可以试试这个不是非常简洁的解决方案。
Dim d As Datalabel, Dim v As Long
For Each d In Co.chart.SeriesCollection(1).DataLabels
'v = CLng(Mid(d.Caption, 1, Len(d.Caption) - 1))
v = CLng(Split(d.Caption, "%")(0)) '~~> just thought this is better
If v < 2 Then d.Delete
Next
答案 1 :(得分:0)
可能,只是有点复杂:)我想你要隐藏 2%以下的部分,你需要它为切片以及传说等等。 当然,您首先选择不会达到2%的馅饼切片(这很容易,这取决于您如何将%给予切片)。 然后,您可以查看here以查看完整的过程。这个链接显示了一些代码来完成我的解释。