Как в диаграмме сделать разный цвет столбцов

Постановка задачи

Хотелось бы, чтобы столбцы на гистограмме (или дольки на круговой и т.п.) автоматически имели тот цвет, который был использован для заливки соответствующих им ячеек с исходными данными:

chart-colors-from-cells1.png

Предвосхищая удивленно-возмущенные крики отдельных товарищей, надо отметить, что, конечно же, цвет заливки на диаграмме можно менять и вручную (правой кнопкой по столбцу - Формат точки/ряда данных (Format data point/series) и т.д. - никто не спорит. Но на практике случается куча ситуаций, когда проще и удобнее сделать это непосредственно в ячейках с данными, а диаграмма потом должна перекраситься уже автоматически. Попробуйте, например, задать заливку по регионам для столбцов на этой диаграмме:

chart-colors-from-cells3.png

Думаю, вы поняли идею, да?

Решение

Ничем, кроме как макросом, такое реализовать не получится. Поэтому открываем Редактор Visual Basic с вкладки Разработчик (Developer - Visual Basic Editor) или нажимаем сочетание клавиш Alt+F11, вставляем новый пустой модуль через меню Insert - Module и копируем туда текст вот такого макроса, который и будет делать всю работу:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") Set r = Range(m(2)) For i = 1 To r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub

Теперь можно закрыть Visual Basic и вернуться в Excel. Использовать созданный макрос очень просто. Выделите диаграмму (область диаграммы, а не область построения, сетку или столбцы!):

chart-colors-from-cells2.png

и запустите наш макрос с помощью кнопки Макросы на вкладке Разработчик (Developer - Macros) или с помощью сочетания клавиш Alt+F8. В том же окне можно, в случае частого использования, назначить макросу сочетание клавиш с помощью кнопки Параметры (Options).

P.S.

Единственной ложкой дегтя остается невозможность применения подобной функции для случаев, когда цвет ячейкам исходных данных назначается с помощью правил условного форматирования. К сожалению, Visual Basic не имеет встроенных средств для считывания таких цветов. Есть, конечно, определенные "костыли", но работают они не для все случаев и не во всех версиях.

Ссылки по теме


Источник: http://www.planetaexcel.ru/techniques/4/186/



Рекомендуем посмотреть ещё:


Закрыть ... [X]

Создание диаграммы от начала до конца - Excel Столы из поддонов своими руками фото

Ответы Как поменять цвет в диаграммах и Совмещаем разные типы диаграмм в MS EXCEL Цвет диаграммы из ячеек с ее данными Раскраска столбцов диаграммы Как создать диаграмму в Excel Бородавка на носу: причины появления, как удалить и избавиться? Вода к чему снится во сне? Если видишь во сне Вода, что Вязаные листочки и цветочки со схемами