У меня есть лист, где я создаю круговую диаграмму из данных из базы данных. Диаграмма изменяется в зависимости от отображаемых данных, поэтому срезы часто меняют размер.
Я хочу отображать метки данных вне срезов с линией выноски, если срез достаточно мал, чтобы оправдать его.
Я проделал большую часть пути, но проблема в том, что ярлыки часто путаются и заканчиваются наложением друг на друга или появлением слишком далеко от их среза. Это приводит к тому, что мне приходится вручную менять метки при обновлении графика.
Вот пример диаграммы после изменения данных. Мы можем видеть, как «собственность» и «выкуп» перекрываются, в то время как «макро» и «золото» оказались слишком далеко, что привело к появлению лишних линий лидеров.
Есть ли какой-нибудь VBA-скрипт, который хорошо позиционирует метки без этих проблем? Встроенное позиционирование в Excel недостаточно, поскольку оно пытается поместить некоторые метки в срезы, если они достаточно большие, что приведет к неразборчивым меткам из-за цветовой схемы.
Ответы:
Коротко отвечая на ваш вопрос, вы можете манипулировать надписями через VBA, но я думаю, вам будет сложно создать эффективный алгоритм для аккуратного размещения надписей на постоянно меняющейся круговой диаграмме.
Я предложу альтернативу круговой диаграмме (на самом деле они не являются отличной альтернативой диаграмм, вот место, где можно начать поиск, если вам любопытно сохранить пироги на десерт ). Гистограмма является альтернативой как для отображения данных, так и для решения проблемы с маркировкой, которая вызывает у вас проблемы. Вот пример с данными, которые вы предоставили в своем примере:
Здесь не нужно беспокоиться о размещении этикетки или расположении, название инвестиции всегда примыкает к соответствующему столбцу без необходимости в лидерах. Процент четко обозначен внутри соответствующего столбца, причем относительные длины дают визуальное представление об их относительных размерах. Сортировка может выполняться для выделения значений (как в примере) или может быть изменена на статическую (например, в алфавитном порядке), чтобы можно было легко сравнивать разные версии одной и той же диаграммы.
источник