在Excel中绘制图表:条件标签

时间:2014-07-23 09:12:36

标签: excel vba

我使用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

2 个答案:

答案 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以查看完整的过程。这个链接显示了一些代码来完成我的解释。