Excel で積み上げクラスタ縦棒グラフを作成するにはどうすればよいですか?
プロフェッショナルなデータ分析環境では、1 つのグラフに複数のカテゴリとデータグループを可視化することで、より明確な比較と効率的なデータ解釈が実現します。特に、積み上げとクラスタを組み合わせた表示——たとえば、四半期別および地域別の売上を横に並べて示す——はよくある要件の一つです。本記事では、Excel で「積み上げクラスター縦棒グラフ」を作成する手順をご紹介します。このグラフでは、各カテゴリ値をクラスタ縦棒として比較でき、かつ各クラスタが積み上げられたセグメントで構成されます。これにより、グループ間および複数の変数にわたる強力な比較分析が可能になります(下記スクリーンショット参照)。

➤ Excel で積み上げクラスター化された縦棒グラフを作成する
➤ VBA コード – データの再構成とグラフ作成を自動化する
➤ Excel 数式 – 積み上げクラスターグラフ用にデータを動的に再構成する
Excel で積み上げクラスター化された縦棒グラフを作成する
Excel で積み上げクラスター化された縦棒グラフを作成するには、まずExcel がこのタイプのグラフをネイティブにサポートしていないことを理解することが重要です。ただし、データを慎重に準備し、グラフレイアウトをカスタマイズすれば、この効果を再現できます。
✅ 最初に知っておくべきこと:
- Excel には組み込みの「積み上げクラスター化された縦棒グラフ」タイプが用意されていません。このグラフは、データレイアウトを工夫することで実現しています。
- クラスタグループを再現するには、データを再構成する必要があります。
- 空白行は、各クラスタを視覚的に分離するため、カテゴリグループ間に挿入されます。
複数四半期にわたる製品のサンプル売上データを用いて、このプロセスをステップ・バイ・ステップでわかりやすく解説します。
1.生データを整理する:この例では、列 A に製品名、隣接する列に売上データ(例:Q1 および Q2 の実績対目標)があります。目的は、各製品のデータを横に並べて表示し、各クラスター内で実績と目標値を積み上げて表示することです。
2.データを再構成する: 各データグループ(例:各製品行)を新しいレイアウトにコピーし、グループ間に空行を挿入してください。これにより、Excel が各グループを積み上げ縦棒グラフ内の個別のクラスタとして正しく認識します。

3.グラフを作成する: 再構成したデータを選択し、挿入 > 縦棒または縦棒グラフ > 積み上げ縦棒をクリックします。

4.系列を書式設定する:グラフ内の任意の縦棒を右クリックして、データ系列の書式設定を選択します。

5.間隔の幅を縮小する:データ系列の書式設定ウィンドウで、系列のオプションに移動し、間隔の幅 = 0%に設定して、各グループを視覚的に1 つの積み上げクラスターに圧縮します。

6.凡例およびレイアウトを調整する: 凡例を右クリックし、凡例の書式設定を選択。

7.凡例の位置を選択する:凡例の書式設定ウィンドウで、凡例のオプションの下にある凡例の表示位置(右、上、左、下)から、グラフのレイアウトに最適でデータと重ならないものを選びましょう。

✅ 結果:これで、各製品の実績/目標データがグループ化され、横に並んだ積み上げクラスター縦棒グラフが完成しました。これにより、すばやく簡単に比較できます。
⚠️ 制限事項:この手法は小規模なデータセットには有効ですが、大規模なデータセットや頻繁に変更されるデータでは、手動での再構成はミスが発生しやすくなります。このプロセスを自動化する VBA および数式による解決策については、以降のセクションをご覧ください。
VBA コード – データの再構成およびグラフ生成を自動化する
大規模なデータセットや頻繁に更新されるレポートを扱う際、積み上げクラスタグラフを作成するためにデータを手動で再配置するのは煩雑で、ミスも起こりやすくなります。VBA(Visual Basic for Applications)を使えば、ソーステーブルの再構成からグラフの挿入まで一連の作業を自動化でき、時間と労力を大幅に節約できます。
この方法は、Excel マクロに慣れている方や、VBA が許可された環境に最適です。特に、グラフの構造はそのままでデータだけを定期的に更新する場合に効果的です。以下に実装方法を示します。
手順1:Alt + F11キーを押して、VBA エディターを開きます。エディターで、挿入 > 標準モジュールをクリックします。
手順2: 以下の VBA コードをモジュールウィンドウに貼り付けます:
Sub CreateStackedClusteredChart()
Dim ws As Worksheet
Dim rngData As Range
Dim chartObj As ChartObject
Dim chartRange As Range
Dim xTitleId As String
On Error Resume Next
Set ws = ActiveSheet
xTitleId = "KutoolsforExcel"
' Prompt user to select original data
Set rngData = Application.InputBox("Select the original grouped data (including all headers):", xTitleId, Selection.Address, Type:=8)
If rngData Is Nothing Then Exit Sub
' Create new worksheet for reshaped data
Dim wsChartData As Worksheet
Set wsChartData = Worksheets.Add
wsChartData.Name = "ChartData_" & Format(Now(), "hhmmss")
Dim numRows As Long, numCols As Long, i As Long, j As Long, outRow As Long
numRows = rngData.Rows.Count
numCols = rngData.Columns.Count
outRow = 1
' Add headers
wsChartData.Cells(outRow, 1).Value = "Category"
For j = 2 To numCols
wsChartData.Cells(outRow, j).Value = rngData.Cells(1, j).Value
Next j
outRow = outRow + 1
' Copy data and insert blank rows
For i = 2 To numRows
For j = 1 To numCols
wsChartData.Cells(outRow, j).Value = rngData.Cells(i, j).Value
Next j
outRow = outRow + 1
If i < numRows Then
wsChartData.Cells(outRow, 1).Value = ""
outRow = outRow + 1
End If
Next i
' Define chart data range
Set chartRange = wsChartData.Range(wsChartData.Cells(1, 1), wsChartData.Cells(outRow - 1, numCols))
' Insert chart
Set chartObj = wsChartData.ChartObjects.Add(Left:=100, Top:=30, Width:=500, Height:=350)
With chartObj.Chart
.SetSourceData Source:=chartRange
.ChartType = xlColumnStacked
.HasTitle = True
.ChartTitle.Text = "Stacked Clustered Column Chart"
.Legend.Position = xlLegendPositionRight
.ChartGroups(1).GapWidth = 0
End With
MsgBox "Chart generated successfully.", vbInformation, "KutoolsforExcel"
End Sub 手順3:Alt + F8キーを押してマクロダイアログを開き、CreateStackedClusteredChartを選択して実行をクリックします。
手順4:プロンプトが表示されたら、ヘッダー付きの元のデータセットを選択してください。マクロが新しいワークシートを自動生成し、空白行を挿入して、積み上げクラスター化された縦棒グラフを作成します。
📝 ヒント:
- 元の表の列見出しと書式が一貫していることをご確認ください。
- データセットが更新されるたびにマクロを再実行でき、手作業を繰り返す必要はありません。
✅ 利点:保存時間の短縮、正確なレイアウト再現、定期レポート作成に最適。
⚠️ 欠点:マクロ対応のExcel と VBA の基本知識が必要です。
Excel 数式 – 積み上げクラスタグラフ用のデータを動的に再構成する
VBA を使いたくない場合や、生データの変更に応じてグラフを動的に更新したい場合は、数式を使ってソースデータを積み上げクラスタグラフに最適なレイアウトに再構成できます。INDEXやTRANSPOSEなどの組み込み関数と補助列を活用すれば、わずかな手間で常に正しい構造のデータ変換領域を簡単に設定し、グラフにぴったりのデータを提供できます。
このアプローチは、元データが定期的に更新され(新しい期間やカテゴリなどが追加される)、手動での再構成なしにグラフを自動的に調整したい場合に特に実用的です。そのためには、数式を使ってデータブロックと空白行を取得・配置する「ヘルパー」セクションを構築し、常にグラフのデータソースを最新の状態に保つ必要があります。
以下に、このような設定を行う方法の例を示します。
- 元のデータがA1:D7(A1が左上端のヘッダーにあると仮定します)。列 A には地域/カテゴリが、列 B ・ C ・ D にはサブカテゴリの値(例:Q1、Q2、Q3)が配置されています。
- 各カテゴリをクラスタとして表示し、Q 値を積み上げて表示する際は、クラスタ間を区切るために空白行を挿入します。
1 新しいシートまたは隣接する領域に、各グループを抽出し、空白行を挿入するためのヘルパー構造を作成します。たとえば、最初のデータ行を E2:G2 にコピーする場合は、次のようにします。
=INDEX($A$2:$D$7,INT((ROW()-2)/2)+1,COLUMN()-4+1) 必要に応じて、この数式を下方向にドラッグしてください。グループ間に空白行を挿入するには、交互の行で空白(「」)を返すようIF 関数を設定します。
=IF(ISODD(ROW()), "", INDEX($A$2:$D$7,ROW()/2,COLUMN()-4+1)) これらの数式を組み合わせ、参照を慎重に設定することで、定期的に空白行を含んだ再構成済みデータを出力します。
2 変換範囲が完成し(積み上げとクラスターを含む状態になったら)、その新しい範囲を選択し、前述の方法()挿入>積み上げ縦棒)に従って積み上げ縦棒グラフを作成します。これにより、グラフは元のデータテーブルへの変更を自動的に反映するようになります。
大規模なデータセットでは、抽出処理をより柔軟にするためにOFFSET 関数を使ったり、グラフのデータソースを定義するために動的名前付き範囲を活用したりするのが効果的です。
メリット:VBA やマクロが不要で、スクリプトが制限された環境に最適です。
デメリット:大規模なデータでは数式の設定が複雑になり、非常に大きな動的範囲ではパフォーマンスが低下する可能性があります。
トラブルシューティング:グラフが正しく更新されない場合は、ヘルパー数式内の参照エラーや不一致がないか再度ご確認ください。クラスター表示を実現する上で鍵となる空白行が正しく挿入されているかもあわせてご確認ください。
その他の関連するグラフ記事:
- Excel で別の縦棒グラフに重ねる縦棒グラフを作成する
- 2 つのデータ系列を持つ集合縦棒グラフまたはグループ縦棒グラフを作成すると、各データ系列の棒は横に並んで表示されます。しかし、より明確に2 つのデータ系列を比較したい場合には、重ね合わせ(オーバーレイ)された縦棒グラフが有効です。本記事では、Excel で重ね合わせ縦棒グラフを作成する方法をご紹介します。
- Excel でステップチャートを作成する
- ステップチャートは、不規則な間隔で発生する変化を明確に可視化するための折れ線グラフの拡張版です。しかし、Excel にはステップチャートを直接作成する機能が備わっていません。本記事では、Excel ワークシートでステップチャートをステップバイステップで作成する方法を詳しく解説します。
- グラフ内の最大値と最小値のデータポイントを強調表示する
- 以下のスクリーンショットのように、縦棒グラフで最高値または最小値のデータポイントを異なる色で強調表示したい場合、どのようにすれば最高値と最小値を特定し、グラフ内の該当データポイントを素早く強調表示できるでしょうか?
- Excel でベル曲線チャートのテンプレートを作成する
- 統計学で「正規確率分布」と呼ばれるベル曲線チャートは、一般的に起こり得る事象を可視化するために使われ、その頂点は最も発生しやすい事象を示します。本記事では、ご自身のデータからベル曲線チャートを作成し、そのワークブックをExcel でテンプレートとして保存する方法をご紹介します。
- Excel で複数の系列を持つバブルチャートの作成
- ご存知の通り、バブルチャートを素早く作成するには、スクリーンショット1 に示すようにすべてのデータ系列を1 つの系列として扱いますが、ここではExcel でスクリーンショット2 のように複数の系列を持つバブルチャートを作成する方法をご紹介します。
最高のオフィス生産性ツール
Kutools for Excel は、あなたの課題のほとんどを解決し、生産性を80% 向上させます
- スーパー数式バー(複数行のテキストや数式を簡単に編集可能);リーディングレイアウト(多数のセルを簡単に読み書き可能);フィルタリング範囲に貼り付け…
- 結合セル/行/列とデータ保持;セルの分割コンテンツ;重複行を結合して合計/平均を計算…重複の入力を防止セル;範囲を比較…
- 重複または一意の行を選択;空白行を選択(すべてのセルが空);スーパー検索とあいまい検索多数のワークブック内で実行;ランダム選択…
- 正確にコピー複数セルを数式参照を変更せずに移動;複数シートへの参照を自動作成;箇条書きの挿入、チェックボックスなど…
- お気に入りの数式を保存して素早く挿入、範囲、チャート、画像;セルの暗号化パスワード付きで保護;メーリングリストの作成メール送信など…
- テキストの抽出、テキストの追加、特定の位置の文字を削除、スペースを削除;データページ統計を作成・印刷;セルの内容とコメントを相互変換…
- スーパーフィルター(フィルタースキームを保存し、他のシートに適用可能);高度なソート月/週/日、頻度などでグループ化;特殊フィルタ太字、イタリック体などで強調表示…
- ワークブックとワークシートを統合;テーブルのマージをキーカラムに基づいてマージ;データの分割を複数のシートに分割;xls、xlsx、PDF を一括変換…
- PivotTable を以下でグループ化:週番号、曜日など…ロック解除済みセルと選択範囲をロックを異なる色で表示;数式/名前を持つセルをハイライト表示…

- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効化。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 生産性が50%向上し、毎日数百回のマウスクリックを削減できます!
