Перейти к основному содержанию

Как раскрасить диаграмму на основе цвета ячейки в Excel?

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

Раскрасьте диаграмму с одним или несколькими сериями данных в зависимости от цвета ячеек с помощью кодов VBA

Раскрасьте диаграмму с помощью одного или нескольких рядов данных в зависимости от цвета ячеек с помощью удивительной функции


Раскрасьте диаграмму с одним или несколькими сериями данных в зависимости от цвета ячеек с помощью кодов VBA

Раскрасьте диаграмму одной серией данных в зависимости от цвета ячейки

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

1. Сначала создайте гистограмму или столбчатую диаграмму, как показано на следующем снимке экрана (выберите данные и нажмите Вставить > Вставить столбец или гистограмму):

2. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

3. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

Код VBA: цветные полосы диаграммы с одной серией данных в зависимости от цвета ячейки:

Sub ColorChartColumnsbyCellColor()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, xRows As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    With xChart.SeriesCollection(1)
        Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(1), "!")(1))
        xRows = xRg.Rows.Count
        Set xRg = xRg(1)
        For I = 1 To xRows
            .Points(I).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xRg.Offset(I - 1, 0).Interior.ColorIndex)
        Next
    End With
End Sub

Внимание: В приведенном выше коде Диаграмма 1 - это имя диаграммы, которое вы хотите использовать, измените его на свое.

4. После вставки вышеуказанного кода нажмите F5 ключ для запуска этого кода, и цвет полос диаграммы был изменен на основе исходного цвета ячейки, см. снимок экрана:


Раскрасьте диаграмму с несколькими рядами данных в зависимости от цвета ячейки

Если ваша диаграмма содержит несколько рядов данных, примените следующий код VBA:

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

2. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

3. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.

Код VBA: цветные полосы диаграммы с несколькими рядами данных в зависимости от цвета ячейки:

Sub CellColorsToChart()
'Updateby Extendoffice
    Dim xChart As Chart
    Dim I As Long, J As Long
    Dim xRowsOrCols As Long, xSCount As Long
    Dim xRg As Range, xCell As Range
    On Error Resume Next
    Set xChart = ActiveSheet.ChartObjects("Chart 1").Chart
    If xChart Is Nothing Then Exit Sub
    xSCount = xChart.SeriesCollection.Count
    For I = 1 To xSCount
        J = 1
        With xChart.SeriesCollection(I)
            Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
            If xSCount > 4 Then
                xRowsOrCols = xRg.Columns.Count
            Else
                xRowsOrCols = xRg.Rows.Count
            End If
            For Each xCell In xRg
                .Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                .Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
                J = J + 1
            Next
        End With
    Next
End Sub

4, Затем нажмите F5 нажмите клавишу для запуска этого кода, полосы диаграммы сразу заполняются исходным цветом ячеек, см. снимок экрана:

Ноты:

1. В приведенном выше коде Диаграмма 1 - это имя диаграммы, которое вы хотите использовать, измените его на свое.

2. Этот код также можно применить к линейному графику.


Раскрасьте диаграмму с помощью одного или нескольких рядов данных в зависимости от цвета ячеек с помощью удивительной функции

Используя приведенные выше коды, цвета диаграммы не всегда будут совпадать с цветом ячейки, чтобы решить эту проблему, здесь я представлю полезный инструмент - Изменить цвет диаграммы в соответствии с цветом ячейки of Kutools for Excel, с помощью этой удобной функции вы можете быстро и легко раскрасить диаграмму в зависимости от цвета ячейки.

Примечание: Чтобы применить это Изменить цвет диаграммы в соответствии с цветом ячейки, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Сначала вставьте диаграмму, которую вы хотите использовать, затем выберите диаграмму, затем нажмите Кутулс > Графики > Инструменты для диаграмм > Изменить цвет диаграммы в соответствии с цветом ячейки, см. снимок экрана:

2. Затем появится диалоговое окно, нажмите OK .

3. Теперь выбранная вами диаграмма окрашена в соответствии с цветами ячеек, как показано на скриншотах ниже:

Раскрасьте диаграмму одной серией данных в зависимости от цвета ячейки

Раскрасьте диаграмму с несколькими рядами данных в зависимости от цвета ячейки

Загрузите бесплатную пробную версию Kutools for Excel прямо сейчас!


Дополнительные статьи о диаграммах:

  • Создание гистограммы, наложенной на другую гистограмму в Excel
  • Когда мы создаем кластеризованную столбчатую или столбчатую диаграмму с двумя рядами данных, эти две полосы ряда данных будут отображаться рядом. Но иногда нам нужно использовать наложенную или перекрывающуюся гистограмму, чтобы более четко сравнить две серии данных. В этой статье я расскажу о том, как создать перекрывающуюся гистограмму в Excel.
  • Копирование одного формата диаграммы в другой в Excel
  • Предположим, что на вашем листе есть несколько различных типов диаграмм, вы отформатировали одну диаграмму в соответствии с вашими потребностями и теперь хотите применить это форматирование к другим диаграммам. Конечно, вы можете форматировать другие вручную один за другим, но это займет много времени, есть ли какие-нибудь быстрые или удобные способы скопировать один формат диаграммы в другие в Excel?
  • Выделите максимальные и минимальные точки данных на диаграмме
  • Если у вас есть столбчатая диаграмма, на которой вы хотите выделить самые высокие или самые маленькие точки данных разными цветами, чтобы выделить их, как показано на следующем снимке экрана. Как вы могли определить самые высокие и самые маленькие значения, а затем быстро выделить точки данных на диаграмме?
  • Создать шаговую диаграмму в Excel
  • Пошаговая диаграмма используется для отображения изменений, происходящих с нерегулярными интервалами, это расширенная версия линейной диаграммы. Но прямого способа создать его в Excel нет. В этой статье я расскажу о том, как шаг за шагом создать пошаговую диаграмму на листе Excel.
  • Создать гистограмму выполнения в Excel
  • В Excel гистограмма выполнения может помочь вам отслеживать прогресс в достижении цели, как показано на следующем снимке экрана. Но как создать гистограмму выполнения на листе Excel?

Лучшие инструменты для офисной работы

🤖 Kutools AI Помощник: Революционный анализ данных на основе: Интеллектуальное исполнение   |  Генерировать код  |  Создание пользовательских формул  |  Анализ данных и создание диаграмм  |  Вызов функций Kutools...
Популярные опции: Найдите, выделите или определите дубликаты   |  Удалить пустые строки   |  Объедините столбцы или ячейки без потери данных   |   Раунд без формулы ...
Супер поиск: Множественный критерий VLookup    VLookup с несколькими значениями  |   VLookup по нескольким листам   |   Нечеткий поиск ....
Расширенный раскрывающийся список: Быстрое создание раскрывающегося списка   |  Зависимый раскрывающийся список   |  Выпадающий список с множественным выбором ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка Фокус   |  Просмотр дизайна   |   Большой Формулный Бар    Менеджер книг и листов   |  Библиотека ресурсов (Авто текст)   |  Выбор даты   |  Комбинировать листы   |  Шифровать/дешифровать ячейки    Отправлять электронные письма по списку   |  Суперфильтр   |   Специальный фильтр (фильтровать жирным шрифтом/курсивом/зачеркиванием...) ...
15 лучших наборов инструментов12 Текст Инструменты (Добавить текст, Удалить символы, ...)   |   50+ График Тип (Диаграмма Ганта, ...)   |   40+ Практических Формулы (Рассчитать возраст по дню рождения, ...)   |   19 Вносимые Инструменты (Вставить QR-код, Вставить изображение из пути, ...)   |   12 Конверсия Инструменты (Числа в слова, Конверсия валюты, ...)   |   7 Слияние и разделение Инструменты (Расширенные ряды комбинирования, Разделить клетки, ...)   |   ... и более

Улучшите свои навыки работы с Excel с помощью Kutools for Excel и почувствуйте эффективность, как никогда раньше. Kutools for Excel предлагает более 300 расширенных функций для повышения производительности и экономии времени.  Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...

Описание


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Comments (8)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
For more than 1 Chart:



Sub CellColorsToChart()'Updateby Extendoffice
Dim xChart As Chart
Dim I As Long, J As Long, Y As Long
Dim xRowsOrCols As Long, xSCount As Long Dim xRg As Range, xCell As Range
On Error Resume Next

For Y = 1 To 100Set xChart = ActiveSheet.ChartObjects("Chart "&Y).Chart If xChart Is Nothing Then Exit Sub
xSCount = xChart.SeriesCollection.Count
For I = 1 To xSCount
J = 1
With xChart.SeriesCollection(I)
Set xRg = ActiveSheet.Range(Split(Split(.Formula, ",")(2), "!")(1))
If xSCount > 4 Then
xRowsOrCols = xRg.Columns.Count
Else
xRowsOrCols = xRg.Rows.Count
End If
For Each xCell In xRg
.Points(J).Format.Fill.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
.Points(J).Format.Line.ForeColor.RGB = ThisWorkbook.Colors(xCell.Interior.ColorIndex)
J = J + 1
Next
End WithNext
Next
End Sub

This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
This comment was minimized by the moderator on the site
It is ok. But... why simply not going to "Format Legend Entry" option in every data series in the chart, and go "Fill" and make it the color you want. I mean... all is ok, but a VBA code for this simple task is kinda overkill. But thanks. Appreciate you share it.
This comment was minimized by the moderator on the site
i cant make it work :( is this supposed to work on a stacked bar chart? Thanks
This comment was minimized by the moderator on the site
This was an awesome start, but the colors of the chart and the cells don't always match. Any idea why?
This comment was minimized by the moderator on the site
Thank you for the codes! How would you add a conditional format when the format is already established?
This comment was minimized by the moderator on the site
Thank you for these codes! This was exactly what I've been looking for with one detail not quite fitting. When I ran the code, the bar graphs colored in correctly but not legend which stayed unchanged. Is there a variation to the code that would include the legend? Or is there a way to match the Legend to the changes in the chart without a code?
This comment was minimized by the moderator on the site
If i have more charts in my sheet? do you have another code?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations