KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中根據儲存格的顏色為圖表上色?

作者Xiaoyang修改日期

當您在 Excel 中建立標準圖表(例如直條圖或條形圖)時,系統會自動套用 Excel 預設色彩至各數列或資料點,這些色彩可能與您數據區域中的儲存格填充色不一致。然而,在許多情境下(例如製作儀表板、報告或資料視覺化),您可能希望圖表長條的顏色能精準對應來源儲存格所使用的色彩。這樣不僅能維持整體視覺一致性、讓資料一目了然,還能強化以色彩作為分類提示的群組效果。舉例來說,您或許希望圖表中的每個直條都能忠實反映摘要表格中所套用的色彩編碼(如下方截圖所示)。 由於 Excel 並未內建直接功能,可自動將儲存格填充顏色(尤其是手動設定的色彩)對應至圖表元素,因此需根據色彩是手動套用,還是透過公式或條件式格式產生,採用不同的解決方法。以下提供多種實用方案,協助您在各種情境下有效達成此對應效果。

根據儲存格顏色建立的色彩圖表

使用 VBA 程式碼依據儲存格顏色為含單一或多個資料數列的圖表上色

使用超強大功能依據儲存格顏色為含單一或多個資料數列的圖表上色


使用 VBA 程式碼依據儲存格顏色為含單一或多個資料數列的圖表上色

依據儲存格顏色為含單一資料數列的圖表上色

若希望圖表長條繼承對應儲存格的手動填充顏色(非透過條件格式或公式設定),可運用 VBA 將圖表長條的色彩與原始儲存格同步。此技巧特別適用於單一數據系列的圖表,在視覺一致性對提升清晰度或符合報告標準至關重要時尤為實用。

1. 首先選取您的資料,並建立長條圖或柱狀圖:請先選取相關儲存格,再點選插入 插入直條圖或條形圖,即可看到類似下方截圖的預設圖表:

插入直條圖或長條圖

2. 按下 ALT + F11,即可開啟 Microsoft Visual Basic for Applications (VBA)編輯器!

3. 在 VBA 視窗中,按一下插入> 模組,接著將下列程式碼複製並貼到模組視窗中。此指令碼會將每個圖表長條更新為對應儲存格的填充顏色。

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
注意在上述程式碼中,請將 Chart 1 替換為您實際圖表的名稱(選取圖表時,可在名稱方塊中找到該名稱)。若您日後重新命名圖表,請一併更新巨集。)

4. 輸入程式碼後,按下 F5 以執行巨集。圖表長條現應即時反映來源儲存格的填充顏色,實現直觀的視覺對應(如下方截圖所示):

執行 VBA 程式碼,根據儲存格顏色為圖表上色

此方法適用於手動設定儲存格填充顏色,且預期需頻繁調整的圖表。但請注意,若變更儲存格色彩,您必須重新執行 VBA 才能更新圖表,因為兩者之間並無動態連結。此外,務必將活頁簿儲存為啟用巨集的檔案(.xlsm),以確保程式碼得以保留。


依據儲存格顏色為含多個資料數列的圖表上色

若您的圖表包含多個資料數列(例如不同產品隨時間變化,或各類別的比較),可運用類似的 VBA 方法,將每個長條區段或資料點的填充顏色對應至其來源儲存格。如此不僅能維持報告整體的視覺一致性,更讓觀看者輕鬆在工作表與圖表之間交叉參照資料。

1. 設定您的資料,並建立多數列長條圖或柱狀圖(如下所示):

根據儲存格顏色為含多個數據系列的圖表上色

2. 按下 ALT + F11,立即開啟 VBA 編輯器!

3. 在 VBA 視窗中,按一下插入> 模組,並貼上下列程式碼:

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 執行此程式碼,圖表數列將立即更新,以反映數據區域中儲存格的填充顏色(如下圖所示):

執行 VBA 程式碼,根據儲存格顏色為含多個數據系列的圖表上色

注意事項:
  • 程式碼預設將圖表命名為 Chart 1,請依您圖表的實際名稱進行調整。
  • 此方法不僅適用於長條圖或直條圖,也支援折線圖。
  • 若您遇到任何問題(例如資料未更新或出現錯誤),請確認圖表的資料數列是否與儲存格的色彩範圍一一對應。

雖然此技巧能為手動上色的資料提供完整的控制與彈性,卻無法處理透過條件格式或公式自動產生色彩的情況。在此類情境下,請參考以下基於公式的解決方案及條件格式選項,以實現更具動態性的效果。


使用超強大功能依據儲存格顏色為含單一或多個資料數列的圖表上色

雖然 VBA 可將圖表顏色與儲存格填滿色彩同步,但需手動執行程式碼,且部分使用者可能不熟悉巨集或 VBA 安全性提示。若您尋求更簡便、互動性更高的解決方案,根據儲存格顏色改變圖表顏色功能(內建於 )Kutools for Excel)正是您的理想選擇!此工具能自動將儲存格填滿顏色套用至對應的圖表元素,無論圖表包含單一或多個資料數列皆適用;即使日後更新儲存格色彩,也只需簡單重新套用,即可立即刷新對應關係,輕鬆又高效!

Kutools for Excel 提供超過 300 項進階功能,簡化複雜作業,提升創造力與效率。整合 AI 功能,Kutools 能精準自動化各項任務,讓資料管理輕鬆無負擔。Kutools for Excel 的詳細資訊……         免費試用……
提示:若要使用此根據儲存格顏色改變圖表顏色功能,您需要先下載並安裝 Kutools for Excel。此過程簡單明瞭,能大幅提升色彩對應的速度。

安裝 Kutools for Excel 後,請依下列步驟操作:

1. 插入您要上色的圖表。選取圖表後,前往 Kutools> 圖表> 圖表工具> 根據儲存格顏色改變圖表顏色(如下圖所示):

點擊 Kutools 的「根據儲存格顏色變更圖表色彩」功能

2. 出現提示時,只需在對話方塊中點選確定即可。

跳出提示視窗

3. 圖表將立即根據您儲存格的色彩自動更新(如下列範例所示):

依據儲存格顏色為含單一資料數列的圖表上色
根據儲存格顏色為含單一數據系列的圖表上色

依據儲存格顏色為含多個資料數列的圖表上色
根據儲存格顏色為含多個數據系列的圖表上色

此功能非常適合經常需要自動對應圖表色彩,並希望擁有一套可重複使用解決方案的使用者(無論資料如何更新皆適用)。相較於手動設定格式或執行巨集,不僅能大幅節省時間,更特別適合多人協作編輯資料或製作圖表簡報的環境。

立即下載並免費試用 Kutools for Excel!


更多相關圖表文章:

  • 在 Excel 中建立一個疊加於另一個條形圖上的條形圖
  • 當您在 Excel 中建立包含兩個資料數列的群組長條圖或柱狀圖時,這兩個資料數列的長條會並排顯示。然而,有時為了更清晰地比較兩組數據,我們需要改用疊加或重疊的條形圖。本文將介紹如何在 Excel 中建立重疊的條形圖。
  • 在 Excel 中將一個圖表格式複製到其他圖表
  • 假設您的工作表中包含多種不同類型的圖表,且您已根據需求精心設定好其中一個圖表的格式,現在希望將此格式快速套用至其他圖表。雖然您可以逐一手動調整每個圖表,但這樣不僅耗時又費力。在 Excel 中,是否有既快速又便捷的方法,能將一個圖表的格式輕鬆複製到其他圖表呢?
  • 在 Excel 中建立階梯圖
  • 階梯圖是折線圖的延伸版本,用於呈現數據在不規則時間間隔中的變化情形。然而,Excel 並未內建直接建立階梯圖的功能。本文將逐步引導您在 Excel 工作表中手動打造專業的階梯圖。
  • 在 Excel 中建立進度條圖
  • 在 Excel 中,進度條圖能協助您直觀掌握目標達成的進度(如下方截圖所示)。但您該如何在 Excel 工作表中建立這樣的進度條圖呢?

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用