エクセルで棒グラフを作成すると、値が0の商品や月も横軸に表示され、グラフの余白が増えて見づらくなることがあります。
一方で、元データの0を空白に変えたところ、今度は棒グラフの途中に隙間ができてしまい、意図した見た目にならないケースもあります。
棒グラフから0を消しつつ空白を詰めるには、元データの持ち方とグラフのデータ範囲を分けて考えることが大切です。
この記事で確認するポイント
・0の項目をグラフから外す方法
・数式で0を空白に見せる方法
・空白のカテゴリを詰めて棒を連続表示する方法
ここでは、Excelの棒グラフで0を表示しない方法と、0が表示されないときの確認ポイントを詳しく解説します。
エクセルの棒グラフで0を除外する方法
それではまず、棒グラフのカテゴリから0のデータを除外し、必要な棒だけを表示する方法について解説していきます。
| 商品名 | 売上 | グラフ表示用 |
|---|---|---|
| りんご | 120 | 120 |
| みかん | 0 | 空白 |
| ぶどう | 85 | 85 |
フィルターで0の行を非表示にする操作
元データを手早く整理できる場合は、表のフィルター機能で0の行を隠してからグラフを作成する方法が分かりやすい手順です。
サンプルデータは1行目を見出しとし、A列に商品名、B列に売上を入力しているものとします。
まずA1からB4を選択し、データタブのフィルターボタンをクリックしましょう。

B1の▼をクリックし、数値フィルターから指定の値より大きいを選択します。
条件を0より大きいに設定すると、売上が0の行だけが表示対象から外れます。
フィルターで非表示になった行は、通常のグラフでは表示対象に含まれないため、空白のカテゴリを残さずに棒を詰められます。
表示中の行だけを選択して集合縦棒グラフを挿入すれば、りんごとぶどうの棒が連続して並びます。
ただし、この方法ではフィルターが表全体に影響するため、一覧表ですべての商品を常に見せたい場合には次の方法が向いています。
グラフフィルターでカテゴリを外す操作
元の表はそのまま残し、グラフだけから0のカテゴリを除外したい場合はグラフフィルターを利用します。
すでに棒グラフを作成している場合は、グラフの右上に表示される漏斗形のグラフフィルターボタンをクリックします。

表示される項目一覧には、横軸ラベルとして使われている商品名が並びます。
値が0の商品名のチェックを外し、適用をクリックしてください。
この操作では元データのセルを変更せずに、特定の商品だけをグラフから非表示にできます。
グラフフィルターは、商品名を見て0の項目を選べる状況では便利ですが、0になる項目が毎月変わる表では手作業が増えます。
定期的に更新する売上表では、後述する数式と抽出範囲を組み合わせる方法を検討しましょう。
グラフのデータ範囲を確認する手順
0を消したはずなのに棒グラフに項目が残る場合は、グラフが参照しているデータ範囲を確認します。
グラフをクリックしてから、グラフのデザインタブにあるデータの選択をクリックします。
データソースの選択画面では、凡例項目と横軸ラベルの参照範囲を個別に見直せます。
横軸ラベルがA2からA10のままで、値だけがB2からB7になっているような状態では、カテゴリと数値の対応が崩れるおそれがあります。
横軸ラベルの範囲と系列の値の範囲は、必ず同じ行数にそろえることが基本です。
除外後のデータだけを使うなら、商品名と数値を同じ抽出表から指定してください。
【操作のポイント】フィルターで0の行を隠す方法は、空白を詰めた棒グラフを最短で作りたい場面に適しています。
数式で0を空白に変換する方法
続いては、元データの数値を残しながら、グラフ用の列では0を空白に見せる数式を確認していきます。
| 商品名 | 売上 | C列の数式結果 |
|---|---|---|
| りんご | 120 | 120 |
| みかん | 0 | 空白文字 |
| ぶどう | 85 | 85 |
IF関数で0を空白文字にする数式
元の売上データがB列にあるときは、C2にIF関数を入力してグラフ専用の表示列を作成します。
=IF(B2=0,””,B2)
この数式は、B2が0なら空白文字を返し、0以外ならB2の値をそのまま返す仕組みです。

C2に数式を入力したら、セル右下のフィルハンドルを下方向へドラッグして、最終行までオートフィルします。
1行目にヘッダーがある表では、C1にグラフ表示用などの見出しを入力しておくと、後から列の役割を判断しやすくなります。
IF関数で作った空白文字は見た目は空白でも、セルに数式が入っている状態です。
そのため、次に説明するグラフの空白セル設定も合わせて確認する必要があります。
空白セルの表示方法を設定する操作
空白文字を返す数式を使っても、棒グラフのカテゴリ名まで自動で消えるとは限りません。
グラフを選択し、グラフのデザインタブからデータの選択を開きます。

画面左下にある非表示および空白のセルをクリックすると、空白セルの表示方法を指定できます。
棒グラフでは通常、空白を間隔として表示する設定になりますが、折れ線グラフのようにゼロとして表示する設定になっていないかを確認してください。
数値の棒だけを消す目的なら空白セル設定が有効ですが、横軸のカテゴリ名を詰めるにはデータ範囲そのものを絞る必要があります。
カテゴリを詰めたい場合は、空白を含むC列をそのままグラフに使うのではなく、0以外だけを別表へ抽出する方法が確実です。
ゼロ値と空白文字の違い
Excelでは、数値の0、何も入力されていない完全な空白、数式が返す空白文字は別の値として扱われます。
数値の0をグラフに渡すと、横軸に項目が残り、棒の高さが0の位置に表示されます。
完全な空白セルでは、グラフの種類や設定によって欠損値として扱われます。
IF関数の空白文字は文字列であり、集計関数やグラフの仕様によっては完全な空白と同じ挙動にならない場合があります。
数値を計算にも使うなら、元のB列は数値のまま保持します。
見せ方を調整するC列を別に作ると、SUM関数やAVERAGE関数の計算結果を壊さずに済みます。
元データを直接書き換えず、グラフ用の補助列を用意する構成は、集計表を安全に管理する基本です。
【操作のポイント】IF関数は0を見せなくするために役立ちますが、カテゴリの隙間をなくすには抽出用の表を作る方法が確実です。
FILTER関数で空白を詰める方法
続いては、Microsoft 365やExcel 2021以降で使いやすいFILTER関数を使い、0以外の行だけを自動抽出する方法を確認していきます。
| A列 | B列 | E列 | F列 |
|---|---|---|---|
| 商品名 | 売上 | グラフ用商品名 | グラフ用売上 |
| りんご | 120 | りんご | 120 |
| みかん | 0 | ぶどう | 85 |
FILTER関数による抽出表の作成
商品名がA2からA10、売上がB2からB10にある場合は、E2に次の数式を入力します。
=FILTER(A2:B10,B2:B10<>0,”該当なし”)
FILTER関数は、最初の引数で指定した範囲から、条件に合う行だけを取り出す関数です。
この数式ではA2からB10が抽出対象となり、B列が0ではない行だけを表示します。
最後の該当なしは、すべての売上が0だった場合に表示する文字です。
抽出結果は数式を入力したE2から右と下へ自動展開されるため、途中のセルに値を入力しないようにしましょう。
抽出後のE列とF列をグラフのデータ範囲に指定すれば、0の項目を含まない棒グラフになります。
抽出範囲を使った棒グラフの挿入
抽出表が完成したら、E1からF列の抽出結果までを選択します。
行数が変化する場合でも、FILTER関数のスピル範囲を含めて選択できるよう、数式の起点セルを基準に確認してください。
挿入タブから縦棒または横棒グラフを選び、集合縦棒グラフをクリックします。
この画面では、赤枠で囲んだE列とF列だけがグラフの元データです。
元のB列に0が残っていても、抽出表に含まれなければグラフの横軸にみかんは表示されません。
データが更新されるとFILTER関数の結果も更新されるため、棒グラフの範囲をテーブル化するなど、更新後の参照範囲も確認しましょう。
FILTER関数が使えない場合の代替方法
古いバージョンのExcelではFILTER関数を使えないことがあります。
その場合は、フィルターで0を除外してコピーする方法、またはピボットテーブルで0以外を絞り込む方法が実用的です。
関数だけで抽出表を作る場合は、INDEX関数、SMALL関数、IF関数を組み合わせる方法もありますが、数式が複雑になりやすい点に注意しましょう。
FILTER関数を使用できる環境では、数式を短く保ちやすく、追加された商品にも対応しやすいメリットがあります。
毎月の売上データから0の棒を自動的に消したいなら、FILTER関数によるグラフ用の別表が特に便利です。
【操作のポイント】抽出表をグラフの元データにすると、0のカテゴリを除外しながら棒と横軸ラベルを自然に詰められます。
ピボットグラフで0を非表示にする設定
続いては、大量の売上明細を集計している場合に便利な、ピボットテーブルとピボットグラフの設定を確認していきます。
| 商品名 | 月 | 売上 |
|---|---|---|
| りんご | 4月 | 120 |
| みかん | 4月 | 0 |
| ぶどう | 4月 | 85 |
ピボットテーブルの値フィルター
明細データから集計した棒グラフでは、まずピボットテーブル側で0の項目を除外します。
行ラベルの▼をクリックし、値フィルターから指定の値より大きいを選びます。
売上の合計が0より大きいという条件を設定すると、合計売上が0の商品を非表示にできます。
ラベルフィルターではなく値フィルターを使うと、集計後の売上合計を基準にして判定できます。
明細が複数行ある商品でも、月ごとの合計が0であるかどうかを適切に判断できる点がメリットです。
データのない項目を表示しない設定
ピボットテーブルでは、フィールド設定によってデータのない項目まで表示されることがあります。
行ラベルを右クリックしてフィールドの設定を開き、レイアウトと印刷の項目を確認してください。
データのないアイテムを表示する設定が有効な場合は、不要なカテゴリが横軸に残る原因になります。
過去に売上があった商品を常に表示する設定は、比較には便利ですが、0を詰めたグラフには不向きです。
現在の集計結果だけを見せたい場合は、不要な表示設定を外して更新します。
ピボットグラフ更新時の注意点
元データを追加した後は、ピボットテーブルまたはピボットグラフを右クリックし、更新を実行します。
更新を忘れると、0だった商品が売上ありになってもグラフに反映されません。
逆に、売上が0になった商品が残る場合も、フィルターと更新の両方を確認しましょう。
ピボットグラフの見た目が変わらないときは、更新、値フィルター、データのない項目の表示設定を順番に確認します。
大量の明細を扱う帳票では、手作業で範囲を変更するよりも安定した管理方法です。
【操作のポイント】ピボットグラフでは、元データではなく集計後の値に対して0を除外する設定を行います。
0が表示されないときの確認項目
続いては、本来表示したい0や棒がグラフから消えてしまった場合の原因と確認項目を解説していきます。
| 確認対象 | 想定される状態 | 確認内容 |
|---|---|---|
| 元データ | 数式で空白 | 数式バーで確認 |
| グラフ範囲 | 途中までの範囲 | データの選択で確認 |
数値の0と文字列の0
セルに表示される0には、数値としての0と、文字列として入力された0があります。
文字列の0は左寄せになることが多く、SUM関数で合計されない場合があります。
グラフでも数値として正しく扱われず、棒が表示されない原因になることがあります。
セルを選択して数式バーを確認し、先頭にアポストロフィが付いた0や文字列形式になっていないかを調べましょう。
文字列を数値へ直すには、エラー表示の変換機能やVALUE関数、区切り位置機能を使う方法があります。
表示形式による0の非表示
セルには0が入っているのに見えない場合は、ユーザー定義の表示形式が原因かもしれません。
たとえば正の数、負の数、ゼロ、文字列の順で書式を指定する表示形式では、ゼロ部分を空欄にできます。
例として、#,##0;-#,##0;;@ のような表示形式では、ゼロの表示部分を空欄にできます。
ただし、この方法はセルの見た目を変えるだけであり、セルの実値は0のままです。
表示形式で0を隠しても、棒グラフの横軸からカテゴリを完全に削除する効果はありません。
グラフのカテゴリを詰める目的では、FILTER関数やフィルターで行を除外する方法を使いましょう。
グラフの種類と軸設定
縦棒グラフと横棒グラフでは、0の値は基準線上にあるため棒として見えません。
これはエラーではなく、棒の長さまたは高さが0であることによる通常の表示です。
しかし、カテゴリ名まで表示されない場合は、グラフフィルター、データ範囲、横軸ラベルの設定を確認します。
また、対数目盛を使っているグラフでは0を扱えないため、0のデータが表示されないことがあります。
対数目盛では0以下の値を表示できないため、軸の書式設定も確認対象です。
【操作のポイント】0が消える原因は、数式、表示形式、グラフフィルター、軸設定のどこにあるかを分けて確認します。
まとめ エクセルの棒グラフで0を表示しない方法
エクセルの棒グラフで0を表示しない方法は、どこまで非表示にしたいかによって選びます。
0の棒だけを見せたくない場合は、IF関数でグラフ用の補助列を作る方法が役立ちます。
0の商品名や月を横軸からも消し、空白を詰めたい場合は、フィルターまたはFILTER関数で0以外の行だけを抽出した表をグラフに使いましょう。
特に自動更新したい表では、元データを保持しながらFILTER関数でグラフ用データを作る構成が扱いやすい方法です。
ピボットグラフでは、値フィルターで集計結果が0の項目を除外できます。
反対に0が表示されないときは、数値と文字列の違い、表示形式、グラフのデータ範囲、対数目盛の設定を確認してください。
目的に合う方法を使い分けて、見やすく正確な棒グラフを作成していきましょう。