9

Я хочу создать круговую диаграмму в Excel с 8 секторами, как в этом примере:

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

Возможно ли это без использования макросов?

1 ответ1

21

Это прохождение основано на оригинальном уроке Энди Поупа здесь. Допустим, это те данные, с которых вы начинаете. Перед созданием диаграммы нужно немного поработать с данными.

ценности

В вашем примере мы хотим, чтобы все сектора были одинакового размера, но давайте сделаем вещи гибкими и добавим столбец веса сектора. Например, если вы хотите, чтобы «РАБОТА» отображалась как двойной / тройной / четверной размер среза, просто измените вес сектора на 2/3/4 и т. д.

вес сектора

Теперь нам нужно вычислить пропорции срезов, которые должен покрыть каждый сектор. Добавьте столбец с именем «% от 360», разделив вес сектора на сумму весов всех секторов.

=C2/SUM($C$2:$C$9)  

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

В столбце «Угол завершения» умножьте совокупное значение на «% от 360» на 360.

Начать / Завершить Углы

Теперь хитрость в том, чтобы заставить радиолокационную карту думать, что это круговая диаграмма, состоит в том, чтобы создать точки данных для каждой из 360 градусов в круге.

Давайте расширим нашу таблицу столбцом для каждого угла (в моем примере это затененный серый). Для каждой ячейки добавьте некоторую логику, которая проверяет, покрыт ли угол для этого столбца начальными / конечными углами, и, если да, возвращает значение для этой строки. Убедитесь, что вы скопировали это для всех строк и столбцов для 0-360 градусов.

=IF(AND(G$1>=$E2,G$1<=$F2),$B2,0)

(Примечание. Если вы используете Excel 2003 или более раннюю версию, вам нужно будет перевернуть эту таблицу, чтобы таблица была вертикальной (транспонировать), поскольку число столбцов, используемых этим методом, больше, чем разрешено в старых версиях Excel.)

Теперь мы можем думать о графике. Для большей гибкости давайте добавим столбец "Ярлыки диаграммы" между конечным углом и 0-360 градусами. Я просто собираюсь сослаться на заголовки в столбце А, но вы можете настроить их здесь.

метки диаграммы

Выберите все ячейки в столбцах "Ярлыки диаграммы" и 0–360 (в данном примере G2:ND9). Вставьте диаграмму - под опциями диаграммы радара выберите конечную - "Заполненный радар". Вы получите это.

Удалите легенду и круглые метки данных (выделены желтым цветом). Щелкните правой кнопкой мыши по оставшейся оси и выберите «Форматировать ось». Установите основную единицу, установленную на 10 (ваше максимальное значение), а младшую единицу - на 1. Закройте диалоговое окно, затем удалите номера осей на графике.

Включить основные и второстепенные горизонтальные линии:

круговые линии сетки

Теперь наш график выглядит следующим образом.

Установите основной вес линии сетки равным 2pt и черным для внешней границы круга. Если вы хотите, чтобы сегменты отображали второстепенные линии сетки, вам нужно будет изменить цвет заливки каждого сегмента и установить прозрачность (примерно 20-40% прозрачности должно это сделать).

Чтобы получить радиальные границы сегмента, нам нужно добавить новую серию. Задайте для заголовка ячейку C1 ("Вес сектора") и значения для строк в столбце C (C2:C9). Установите метки горизонтальной оси категорий в качестве меток диаграммы (G2:G9).

Измените тип диаграммы для этой новой серии на круговую диаграмму. Удалите заливку для круговых сегментов и добавьте черные границы. Добавьте метки данных для круговой серии, выбрав «Имя категории» вместо «Значение» и установив положение «Внешний конец».

РЕДАКТИРОВАТЬ (30 сентября 2014 г.): рабочую книгу можно загрузить здесь по запросу Firee.

РЕДАКТИРОВАТЬ 2 (25 марта 2015 г.): Михайло отметил, что эту технику можно немного улучшить:

График заканчивается небольшим смещением против часовой стрелки (как видно на последнем графике выше с красным, имеющим зазор по вертикали, но охватывающим границу на 300 градусов). Это связано с тем, что паучья диаграмма всегда находится позади (т.е. 1 градус нанесен на 2, 2 на 3 и т.д.),

Быстрое решение этой проблемы - изменить формулу для угла финиша (F2) с =360*SUM($D$2:D2) на =360*SUM($D$2:D2)+1 и изменить формулу для первой точки последняя серия должна совпадать с последней точкой последней серии (в приведенном выше примере формула ячейки H9 должна быть равна = ND9.

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