列/棒グラフの正と負のバーをどのように色分けすればよいですか?
Excelでデータを扱う際、増加と減少、利益と支出、または二分される値を列や棒グラフで視覚化することが一般的です。しかし、デフォルトでは、Excelはすべてのバーを正の値であろうと負の値であろうと同じ色で表示します。この均一な着色により、視聴者はトレンドを素早く区別したり、主要な違いを一目で解釈するのが難しくなります。
より明確でプロフェッショナルな視覚的なプレゼンテーションのために、グラフ内の正と負のバーに異なる色を設定したい場合があります。このチュートリアルでは、列や棒グラフの正と負の値を色分けするためのいくつかの効果的な方法を包括的に紹介します。これにより、視覚的に直感的で理解しやすいExcelチャートを作成するのに役立ちます。各方法には詳細、最も適したシナリオ、潜在的な利点と制限、および一般的なエラーを回避するための実用的なヒントが含まれています。
列/棒グラフでの正と負のバーの色分け
VBAマクロ:正/負の値に基づいて自動的にバーに色付け
Excel数式:ヘルパー列とデータ系列を使用して二色の棒グラフを作成
列/棒グラフでの正と負のバーの色分け
Excelには「負の場合反転」という組み込み機能があり、これにより、列または棒グラフで正のバーと負のバーを視覚的に簡単に区別できます。この方法は小規模から中規模のデータセットに適しており、数式やスクリプトを必要としません。シンプルで明確な色分けを最小限の設定で行いたい場合、これが推奨されるアプローチです。
1. グラフ内のデータ系列のバーを右クリックし、このスクリーンショットのようにコンテキストメニューから「データ系列の書式設定」をクリックします。
2. 「データ系列の書式設定」ダイアログボックスで、左側のペインで「塗りつぶし」を選択します。その後、「負の場合反転」のチェックボックスをオンにします。これにより、Excelが正と負のデータを認識し、視覚的に分割できるようになります。スクリーンショットをご覧ください:
3. 次に、データバーに異なる色を適用します。「単色塗りつぶし」オプションをオンにし、塗りつぶし色セクションで正と負の値に希望の色を選択します。これにより、両方のカテゴリを完全にカスタマイズできます。スクリーンショットをご覧ください:
4. 色を選択したら、「閉じる」をクリックして終了します。これで、グラフは設定した色を使って正と負のバーを自動的に表示し、分析やレポート作成における区別がより明確になります。
注意とヒント:
1. Excel 2013以降では、データバーを右クリックして「データ系列の書式設定」を選択すると、インターフェースがサイドペインとして開きます。ここで、「塗りつぶしと線」アイコンをクリックし、「負の場合反転」をチェックして、「単色塗りつぶし」オプションで正と負のバーの色を指定します。ガイダンスとしてスクリーンショットをご覧ください:
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
を選択し、 実行をクリックします。マクロはすべてのバーをループし、正の値には青、負の値には赤を自動的に適用します。
ヒントと注意:
posColor
とnegColor
は、RGB
関数(RGB(R,G,B)
)を使用して任意の色にカスタマイズできます。Excelの標準パレットについては、正確なRGB値を得るためにカラーピッカーを参照してください。- このソリューションは、クラスター型の列と棒グラフ、単一または複数のシリーズに有効です。積み上げチャートには追加の修正が必要になる場合があります。
- マクロが効果をもたらさない場合は、コードを実行する前にチャートがアクティブに選択されているか再度確認してください。
- 複数のチャートや動的なデータセット全体にわたって一括で自動化するには、コードを修正してすべてのチャートをループすることができます。
このVBAアプローチは、複雑なレポートを日常的に生成する場合や、デフォルトのチャートオプションではサポートされていない高度にカスタマイズ可能なカラーリングルールが必要な場合に理想的です。ただし、マクロのセキュリティ設定がコードの実行を制限することがあるので、必要に応じてマクロを有効にしてください。
Excel数式:ヘルパー列とデータ系列を使用して二色の棒グラフを作成
もう一つの実用的な解決策は、特に色の割り当てに対して完全に手動で制御したい場合や、正と負だけでなく(例えば、大きさによる異なる色合いなど)視覚化したい場合に役立つもので、Excel数式を使用して2つのヘルパー列を作成する方法です。一方の列は正の値のみを、もう一方の列は負の値のみを表します。それぞれを独自のデータ系列としてプロットし、各系列に異なる色を設定します。この方法は、高度な条件付き書式ロジックを適用したり、特定のバーにのみデータラベルを含めたりする必要がある場合にもうまく機能します。
以下は、データを整理し、チャートを設定する方法です:
元の値が列B(B2:B11)にあると仮定します。
1. 元のデータの隣に「正」と「負」の2つのヘルパー列を挿入します。
2. 新しい「正」ヘルパー列で、最初のセル(例: C2)に次の数式を入力します:
=IF(B2>=0,B2,NA())
この数式は、B2の値が正またはゼロであればそれを転送し、負であればNA()を返します。これはExcelチャートが無視する(バーを表示しない)ものです。
3. 「負」ヘルパー列で、最初のセル(例: D2)に次の数式を入力します:
=IF(B2<0,B2,NA())
この数式は負の値を表示し、非負の値を隠します。
4. 両方のヘルパー列の数式をデータセット全体にドラッグして展開します。
5. Ctrlキーを押しながら、カテゴリラベルと両方のヘルパー列を選択し、クラスター型の列または棒グラフを挿入します。これで、正の数値用(正の値のみバーを表示)、負の数値用の2つのデータ系列が表示され、それぞれ異なる色のバーが表示されます。
ヒントと注意:
NA()
を使用することで、不要な位置に空/ゼロ高さのバーが表示されず、プロットの視覚的明瞭さが保たれます。- このアプローチは、カスタムしきい値や値範囲に基づいてバーに色付けするなど、さらなる条件に一般化できます。これには、ヘルパー列の数と条件付きロジックをさらに拡張します。
- チャートを自動的に更新する必要がある場合は、チャートの範囲を拡張するか、データをExcelテーブルに変換してください。
- 「負の場合反転」オプションが十分な柔軟性を提供しない場合、または積み上げ/複雑なチャートを扱う際にこの方法を使用します。
この構造では、チャートの更新や書式設定の調整が簡単であり、個々の系列の書式設定に対する詳細な制御を維持できます。
関連記事:
互いに非連続なデータを持つチャートを挿入するにはどうすればよいですか?
Excelで積み上げ縦棒グラフに合計ラベルを追加するにはどうすればよいですか?
Excelでガントチャートを作成するにはどうすればよいですか?
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
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、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得