Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在柱狀圖/條形圖中為正負值條形分開顏色?

Author Xiaoyang Last modified

在Excel中處理數據時,通常會使用柱狀圖或條形圖來可視化收益和損失、利潤和費用,或任何二元值。然而,默認情況下,Excel會將所有條形以單一顏色表示,不論其值是正還是負。這種統一的著色方式使得觀看者很難快速區分趨勢或一眼解讀關鍵差異。

為了更好的清晰度和專業的視覺呈現,您可能希望在圖表中為正值和負值的條形設置不同的顏色。本教程全面介紹了幾種有效的方法,用於在柱狀圖或條形圖中分開正值和負值的顏色,幫助您創建視覺直觀且易於理解的Excel圖表。每種方法都包含詳細信息、適用場景、潛在優勢與限制,以及避免常見錯誤的實用技巧。

分開柱狀圖/條形圖中正負條形的顏色
VBA宏:根據正負值自動為條形上色
Excel公式:使用輔助列和數據系列創建雙色條形圖


arrow blue right bubble 分開柱狀圖/條形圖中正負條形的顏色

Excel提供了一個內置的“若為負值則反轉”功能,這提供了一種快速且簡單的方法,在柱狀圖或條形圖中直觀地區分正值和負值條形。此方法適合中小型數據集,不需要公式或腳本。如果您的目標是以最少的設置創建簡單明確的分離,這是推薦的方法。

1. 在圖表中右鍵點擊一個數據系列條形,然後從上下文菜單中點擊“設置數據系列格式”,如下截圖所示:

click Format Data Series from context menu

2. 在“設置數據系列格式”對話框中,選擇左側窗格中的“填充”。然後,勾選“若為負值則反轉”框。這使Excel能夠識別並視覺分割正值和負值數據。參見截圖:

check Invert if negative option

3. 接下來,為數據條形應用不同的顏色:勾選“純色填充”選項,然後在“填充顏色”部分下選擇正值和負值的首選顏色。這允許對兩類進行完整的自定義。參見截圖:

set different colors for positive and negative bars

4. 一旦您選擇了顏色,點擊“關閉”退出。您的圖表現在將自動使用您設置的顏色顯示正值和負值條形,使分析和報告中的區分更加清晰。

positive and negative data bars are filled with different colors separately

注意事項和提示:

1. 在Excel 2013及更高版本中,右鍵點擊數據條形並選擇“設置數據系列格式”後,界面將作為側邊窗格打開。在此處,點擊“填充和線條”圖標,勾選“若為負值則反轉”,然後在“純色填充”選項下指定正值和負值條形的顏色。請參閱截圖指引:

steps to set different colors for positive and negative bars in Excel2013

2. 此方法適用於柱狀圖和條形圖。
3. 如果您的圖表有多個系列,或者需要根據特定邏輯(超出正負)單獨為條形上色,可能需要使用VBA或輔助列等高級選項。
4. 如果您發現“若為負值則反轉”選項變灰,請仔細檢查您是否正在編輯單一系列而不是堆疊圖表,因為該功能不適用於堆疊柱狀圖/條形圖。

這個解決方案因其簡潔和快速的結果而受到青睞,特別是對於單一系列的柱狀圖或條形圖。對於更多的控制或自動化的批量更改,請考慮以下高級方法。


VBA宏:根據正負值自動為條形上色

如果您需要根據值(正值或負值)程序性地設置條形顏色,或者想處理具有多個數據系列或更複雜顏色邏輯的圖表,可以使用VBA宏。此方法提供了批量處理和一致格式化的靈活性,特別是當您定期更新圖表或管理大型數據集時。

1. 按Alt + F11打開Visual Basic for Applications編輯器。在VBA窗口中,點擊插入 > 模塊,然後將以下代碼複製並粘貼到新模塊中:

Sub ColorBarsPositiveNegative()
    Dim cht As Chart
    Dim srs As Series
    Dim iPoint As Integer
    Dim vValue As Variant
    Dim posColor As Long
    Dim negColor As Long
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Set your preferred RGB colors below
    posColor = RGB(91, 155, 213) ' Blue for positive
    negColor = RGB(192, 80, 77) ' Red for negative

    ' Use currently selected chart
    If ActiveChart Is Nothing Then
        MsgBox "Select a chart first.", vbExclamation, xTitleId
        Exit Sub
    End If
    
    Set cht = ActiveChart
    
    For Each srs In cht.SeriesCollection
        For iPoint = 1 To srs.Points.Count
            vValue = srs.Values(iPoint)
            
            If vValue >= 0 Then
                srs.Points(iPoint).Format.Fill.ForeColor.RGB = posColor
            Else
                srs.Points(iPoint).Format.Fill.ForeColor.RGB = negColor
            End If
        Next iPoint
    Next srs
End Sub

2. 關閉VBA編輯器。返回到您的Excel工作簿,選擇您的圖表,然後按 Alt + F8 打開“宏”對話框。選擇 ColorBarsPositiveNegative 並點擊 運行。該宏將遍歷所有條形,並將正值設置為藍色,負值設置為紅色。

提示與注意:

  • 您可以使用RGB函數RGB(R,G,B))自定義posColornegColor為您選擇的任何顏色。對於Excel的標準調色板,請參閱顏色選擇器以獲取精確的RGB值。
  • 這個解決方案適用於簇狀柱狀圖和條形圖,無論是單系列還是多系列。堆疊圖表可能需要額外修改。
  • 如果宏沒有產生效果,請仔細檢查在運行代碼前是否已選擇圖表。
  • 對於跨多個圖表或動態數據集的大規模自動化,您可以通过修改代碼來循環處理所有圖表。

如果您經常生成複雜報告或需要高度可定制的著色規則(不被默認圖表選項支持),這個VBA方法是理想的。然而,宏安全設置可能會限制代碼執行,因此如果提示,請啟用宏。

Excel公式:使用輔助列和數據系列創建雙色條形圖

另一個實用的解決方案——特別是在您想要完全手動控制顏色分配或不僅僅可視化正負值(例如不同幅度的不同陰影)時——是使用Excel公式創建兩個輔助列。一列僅表示正值,另一列表示負值。每個都被繪製為自己的數據系列,並為每個系列設置獨特的顏色。即使在需要應用高級條件格式邏輯或僅在特定條形上包括數據標籤時,此方法也能很好地工作。

以下是您可以組織數據並配置圖表的方式:

假設您的原始值位於B列 (B2:B11)。

1. 在您的原始數據旁插入兩個輔助列:“正數”和“負數”。

2. 在新的“正數”輔助列中,將以下公式輸入到第一個單元格(例如C2):

=IF(B2>=0,B2,NA())

如果該值為正或零,則此公式將B2的值傳遞過來;如果是負值,則返回NA(),Excel圖表將忽略它(不顯示條形)。

3. 在“負數”輔助列中,將以下公式輸入到第一個單元格(例如D2):

=IF(B2<0,B2,NA())

此公式顯示負值並隱藏非負值。

4. 將兩個輔助列中的公式拖動至整個範圍以匹配您的數據集。

5. 按住Ctrl鍵,選擇您的類別標籤和兩個輔助列,然後插入簇狀柱狀圖或條形圖。您將看到兩個數據系列:一個代表正值(僅顯示正值的條形),一個代表負值,兩者都有不同的條形顏色。

提示與注意:

  • 使用NA()確保不會在不期望的位置出現空/零高度的條形,保持圖表的視覺清晰度。
  • 此方法可以推廣到更多條件——例如,根據自定義閾值或值範圍對條形進行著色,通過進一步增加輔助列數量和條件邏輯實現。
  • 如果您需要自動更新圖表,請務必擴展圖表範圍或將您的數據轉換為Excel表格。
  • 當“若為負值則反轉”選項無法提供足夠靈活性或在使用堆疊/複雜圖表時,使用此方法。

有了這樣的結構,圖表更新和格式調整都很簡單,並且您保留了對單個系列格式的詳細控制。


相關文章:

如何插入數據彼此不連續的圖表?

如何在Excel中向堆疊柱狀圖添加總計標籤?

如何在Excel中創建甘特圖?


最佳 Office 生產力工具

🤖 Kutools AI 助手:以智能執行為基礎,革新數據分析 生成程式碼 創建自訂公式 分析數據並生成圖表 調用 Kutools 增強函數
熱門功能查找、選取項目的背景色或標記重複值刪除空行合併列或單元格且不遺失數據四捨五入(免公式)...
高級 LOOKUP多條件 VLookup多值 VLookup多表查找模糊查找...
高級下拉列表快速創建下拉列表 依賴型下拉列表 多選下拉列表...
列管理器添加指定數量的列移動列切換隱藏列的顯示狀態比較區域及列...
精選功能網格聚焦 設計檢視 增強編輯欄 工作簿及工作表管理器 資源庫(快捷文本) 日期提取器 合併資料 加密/解密儲存格 按列表發送電子郵件 超級篩選 特殊篩選(篩選粗體/傾斜/刪除線...)...
15 大工具集12 項文本工具添加文本刪除特定字符…)50+ 儀表 類型甘特圖等)40+ 實用 公式基於生日計算年齡等)19 項插入工具插入QR码根據路徑插入圖片等)12 項轉換工具金額轉大寫匯率轉換等)7 項合併與分割工具高級合併行分割儲存格等)...及更多
使用 Kutools,語言任你選 — 支援英語、西班牙語、德語、法語、中文及超過40 種語言!

運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...


Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單

  • 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀
  • 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
  • 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!

所有 Kutools 外掛,一次安裝

Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。

Excel Word Outlook Tabs PowerPoint
  • 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
  • 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
  • 協同運作更順暢 — Office 應用間無縫提升生產力
  • 30 天全功能試用 — 無需註冊、無需信用卡
  • 最超值 — 一次購買,節省單獨外掛費用