5

Я сделал диаграмму в Excel, в которой я хотел бы скрыть метку данных, если значение равно нулю. Для меток данных, которые содержат само значение, это делается с помощью настраиваемого форматирования, как описано здесь. Как я могу скрыть метки данных с 0 значениями в диаграмме Excel? ,

Однако это не работает, если метка данных содержит не само значение, а имя серии. Есть ли способ скрыть метку данных, содержащую имя серии, если значение равно нулю?

3 ответа3

3

Я думаю, что это попадает в мир VBA. В противном случае работа с отдельными метками данных довольно ограничена.

Вот код, который будет перебирать серии в диаграмме, их точки данных, а затем удалять те метки, которые соответствуют точке со Value=0 .

Там есть строка кода (прокомментированная), которая снова добавит метки данных ко всем точкам для их сброса. Если вы просто хотите удалить, то можете пропустить эту строку.

Редактировать: добавлено во внешний цикл на ActiveSheet.ChartObjects для обработки всех диаграмм на листе.

Sub RemoveZeroValueDataLabel()

    'runs through every chart on the ActiveSheet
    Dim cht As Chart
    Dim chtObj As ChartObject

    For Each chtObj In ActiveSheet.ChartObjects
        Set cht = chtObj.Chart

        Dim ser As Series
        For Each ser In cht.SeriesCollection

            Dim vals As Variant
            vals = ser.Values

            'include this line if you want to reestablish labels before deleting
            ser.ApplyDataLabels xlDataLabelsShowLabel, , , , True, False, False, False, False

            'loop through values and delete 0-value labels
            Dim i As Integer
            For i = LBound(vals) To UBound(vals)
                If vals(i) = 0 Then
                    With ser.Points(i)
                        If .HasDataLabel Then
                            .DataLabel.Delete
                        End If
                    End With
                End If
            Next i
        Next ser
    Next chtObj
End Sub

Этот ответ захватывает Values из Series используя технику, описанную здесь.

Вот результат для некоторых случайных данных, где для пары столбцов значений 0 были удалены метки данных.

диаграмма с удаленными метками

0

Вы можете удалить все свои 0 (найти и заменить, чтобы заменить все 0 на истинный пробел, соответствующий содержимому всей ячейки, ="" не работает).

0

Смотрите этот хитрый трюк (VBA не требуется, но полностью автоматический!): Http://peltiertech.com/hide-series-data-label-if-value-is-zero/

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .