6/27/2020

Excel。グラフ横軸の文字を互い違い表示するにはどうしたらいい?【Staggered letters】

Excel。グラフ横軸の文字を互い違い表示するにはどうしたらいい?

<集合縦棒グラフをつかって説明>

グラフの横軸に使う文字が長い場合、綺麗なグラフを作ろうとすると厄介な問題が発生することがあります。

次の表を使って、説明していきます。
 
このデータを使って、シンプルな、集合縦棒グラフを作ります。

挿入タブの「縦棒/横棒グラフの挿入」にある、集合縦棒グラフを選択します。
 
集合縦棒グラフが挿入されます。

今回は、説明の為、グラフエリアに色を付けております。
 
横軸のフォントサイズを大きくしたり、グラフのサイズを変えたりしててみると、横軸の文字が斜めに表示されることがあります。
 
横軸に該当する文字が長い場合、斜めになってしまい読みにくくなってしまいます。

アルファベットならば、まだいいのですが、日本語だと読みにくくなるケースが多いようです。

縦書きにする方法もありますが、今度は縦長のグラフになってしまいます。

そこで、横軸の文字を互い違いに表示することができれば、見やすくなる可能性が出てきます。

【横軸の文字を互い違いにする】

グラフにするための表を次のように修正しました。
 
D1:E7は、A1:B7と同じ表に見えますが、A1:B7のデータをもとにアレンジしています。

E列は、単純にセル参照をしているだけなので、E2の数式は、
=B2

D2の都市名は、A2と同じように見えていますが、次のような数式を設定しました。

=IF(MOD(ROW()+1,2),A2,CHAR(10)&A2)
この計算式をオートフィルで数式をD7までコピーしています。

式の説明は後にして、D1:E7を範囲選択して、集合縦棒グラフを挿入してみましょう。
 
ご覧のように、横軸の文字が上下で互い違いに表示されているのが確認できます。

少し、グラフの横幅を広げてみると、もっとはっきり、上下で互い違いで表示されていることがわかります。
 
このように、横軸に表示したい文字列が長い場合など、アイディアによっては、より見やすくてわかりやすいグラフを使った資料を作ることができるかもしれません。

さて、どうして、互い違いに表示できたのでしょうか?
その謎を解くことができるのが、先程の数式です。

=IF(MOD(ROW()+1,2),A2,CHAR(10)&A2)
IF関数は問題ないと思いますが、MOD(ROW()+1,2)というのが条件になっています。

ROW()は、行番号を算出する関数です。

San Francisco は、2行目にあるので、2+1で3。

MOD関数は、除算した余りを算出します。今回は3を2で除算した余りは、1。

なぜ、「+1」しているのでしょうか?
IF関数の条件をよくみてもらうと、「=1」とかありませんよね。

これ、TRUEかFALSEかを算出させているわけです。

Excelでは、TRUEが1でFALSEが0と設定されています。

つまり、結果が1となれば、真の場合を実行しますし、0と算出されていれば、偽の場合を実行することができるわけです。

真の場合は、A2をそのまま表示させます。

儀の場合は、上下で互い違いにしたいので、CHAR(10)を文字結合させています。

このCHAR(10)は、改行を意味しています。

この計算式を使うことで、横軸の文字を上下互い違いに表示することができるわけです。