「よーし!データをバッチリ見せてやろう!」と意気込んで設定したものの、「あれ、第2軸が消えちゃった…?」なんてこと、ありませんか?
せっかく作ったグラフが意図しない表示になってしまうと、焦りますよね。私もExcelのピボットグラフで何度かつまづいた経験があり、凄く気持ちが分かります!
今回はそんなピボットグラフで起こる不具合の解決策をテーマにご紹介していきたいと思います。
- ピボットグラフの第2軸が消えてしまって困る!
- 第2軸の設定を保持させたい!
このような悩みを持っている方も多いかと思います。私もピボットグラフで悩んでいた当時、「こんな解決策があればいいのにな~」と思っていたことを記事にしてみましたので、今お悩みの方にもきっと参考になるはずです!それでは、早速いってみましょう!
第2軸が消える原因は様々ある
「第2軸が消える」とはどういうことか、まずは確認してみましょう!以下ではサンプルデータを基に作成されたピボットグラフを用いて紹介しています。
ここでは、お店の売上データとして第1軸を「積み上げ縦棒グラフ」、前年比データとして第2軸を「折れ線グラフ」に設定しています。(扱うデータやレイアウトは深く考えなくて大丈夫です)しかし、Excelのピボットグラフはある特定の条件下になると自動的に第二軸が消えてしまうことがあるんです。
例えばある条件で絞り込みを行った直後、グラフは以下のような結果を示すことがあります。
なんと第2軸で設定していた折れ線グラフが、第1軸である「積み上げ縦棒グラフ」に集計されてしまっています。第2軸として設定したものが保持されていないのです。この第2軸が消えてしまう他、環境によっては書式設定も保持されないということも同じ類の事象ですね。「データラベルの表示設定を行ったはずなのに消えている!」などがその例です。
第二軸が消えてしまう原因には様々あります。
- データ系列の設定ミス
- スライサーやフィルターに適さない条件で絞り込む
- 数値でない値(空欄や文字列)が入っている
- 集計するデータ量が多い
特にピボットグラフは、ピボットテーブルの再計算が起こると新しいデータ構造に合わせて自動的にデータ系列を再生成します。この処理によって、元々の設定(第2軸やその他書式設定)がリセットされることがあります。
これらはExcelの仕様に基づくものなので、ユーザーが特定の設定を保持し続けるには、予め対策をしておく必要があります。第2軸が消えてしまった際、毎回毎回手動で再設定を行うのもアリかもしれませんが、設定を少し変更するだけでその作業が不要になる場合もあります。これからご紹介する対処法はどれも簡単ですのでぜひご自身の環境でもお試しいただければと思います。
解決方法4つをご紹介
ピボットグラフで意図しない表示になる原因は、ピボットテーブルにどんなデータを持たせているかにもよるため、一概に特定することは難しいです。しかし、グラフの意図しない表示になる現象は避けることが可能なので、これからご紹介する解決方法をぜひお試しいただければと思います。
対策①|スライサーで不要な項目を非表示にする
スライサーを使用した絞り込みを行っている方であれば、こちらが最も簡単かつ効果的な方法ではないでしょうか。スライサーの操作を制限することで、第2軸が消えてしまう組み合わせを選択せずに済みます。第2軸に適してない組み合わせを選んでしまう可能性を排除できるため軸設定を安定させることができます。
以下では、スライサーで不要な項目を非表示にする手順を紹介しています。
まずスライサーを右クリックした後、「スライサーの表示設定」をクリックします。設定の画面の右下にて、「データのないアイテムを非表示にする」をクリック。この設定をご自身で挿入した全てのスライサーに適用させることで不具合の元となる組み合わせを選ばずに済みます。
対策②|フィールドリストで「行ラベル」や「列ラベル」を変更する
例えば軸となる「行ラベル(軸)」の内容を変更することで、グラフの表示が安定する場合があります。筆者の場合は、挿入した「スライサー」の項目と「行ラベル(軸)」の項目を同じにしたことで解決に至った経験があります。(※すべての方に当てはまるわけではありません)
対策③|「0」値データで埋める
第2軸に常にデータが存在している状態にすることで、第2軸を消さないようにする手法です。欠損値があることで、上手くフィルターが機能していないことも考えられます。もしピボットテーブルの値に空欄が存在している場合はぜひお試しいただきたい対策です。
注意点としては、「0」値がグラフの見た目に影響する可能性があります。また「0」値と「データなし」では取り扱いを分けたいという方もいるかもしれませんので、注意が必要です。
対策④|第2軸を再構成するマクロで復活させる
こちらは、第2軸がもし消えてしまった場合、再度表示させるようにする手法です。予防措置というよりは、復旧措置という意味合いの方が近いかもしれません。VBAに抵抗の無い方であればぜひ検討していただきたい対策です。
以下はピボットグラフの第2軸を設定するためのマクロの一例です。
Sub SetSecondaryAxisForPivotGraph()
Dim chartObj As ChartObject
Dim chart As Chart
Dim series As Series
' シート名「Sheet1」とピボットグラフの名前「Graph1」を指定
Set chartObj = ThisWorkbook.Sheets("Sheet1").ChartObjects("Graph1")
Set chart = chartObj.Chart
' 第2軸に設定したいデータ系列「前年比売上」を探して設定
For Each series In chart.SeriesCollection
If series.Name = "前年比売上" Then
series.AxisGroup = xlSecondary
End If
Next series
MsgBox "第2軸に「前年比売上」を設定しました!"
End Sub
ご自身の環境に合わせていただきたいのは、ピボットグラフが存在する「シート名」と「ピボットグラフ名」と「データ系列」の主にこの3つとなります。
この他、上記のマクロを登録したボタンを配置することで、第2軸が消えてしまった時だけ動かせるようにすると利便性が向上します。
これでもダメなら・・・
もし上記の対策でも解決しない場合、「第二軸を使わず、グラフを二つに分ける」という選択肢も視野に入れましょう。
決して最善策とは言えませんが、以下のようなメリットもあります。
- データが見やすくなる
- ピボットグラフが安定する
- 柔軟性の向上
ただし、画面スペースをとるため、レイアウトによってはグラフを一つにまとめた方が見やすいこともあります。全体の構成を考慮して判断するのがよいでしょう。
もしグラフを分割する場合に便利なのが、ピボットテーブルの複製(コピー)です。コピーしたものを用意すると、既存のスライサーを使って2つのグラフを操作することが可能ですので、覚えておくと良いでしょう!
まとめ
本日はExcelピボットグラフで第2軸が消えないようにする対策法をご紹介しました。
ピボットグラフは複雑なデータの集計ができる反面、意図しない挙動をすることがあります。本日ご紹介した解決策は、そのような場面において手軽に試していただける解決策です。ぜひ色々と試行錯誤して、自由自在にピボットグラフを活用してみてください!
最後まで読んでいただきありがとうございました!
コメント