[Googleスプレッドシート]グラフの横軸を日付にして任意の目盛間隔を設定する
ググっても見つからなかったまとめシリーズ。
グラフの見た目に拘りたい人向けの話です。
できるもの
こんな感じで好きな日数単位で横軸を設定したグラフが作りたい人向けの小技です。
普通にやると引っかかること
こんな感じにX(横軸)に日付を持つデータからグラフを作る場合
できあがるグラフの横軸はよくわからない単位で分割されています。
グラフエディアでカスタマイズ>グリッドラインと目盛>横軸、と選択すると、主目盛線の表示モードが「数」、主グリッドラインと主目盛のの数が「自動」となっています。
ではこの自動を1に変えれば1日間隔に、7に変えれば7日間隔に変わるかというと……
数1だと目盛が0個になってしまいました。
数7だと目盛が6個になってしまいました。
他にも細かく値を変えていくとこの「数」という単位は、なんとなく分割単位を指定するパラメータだけど実際には勝手に近似値で都合のいい値が使用されるっぽいことがわかってきます。
ユーザが目盛の間隔を任意で指定するにはどうしたらいいのか?
それには主目盛線の表示モードを「数」から「間隔」に変更する必要があります。
ところがこの主目盛線の表示モードを変えようとすると、「間隔」がグレーアウトされていて「数」から変更できない……!!
やり方
原因
例によってググっても参考になる記事が出てこなかったので自分で試行錯誤したところ、値が数字の時は主目盛線の表示モードで間隔が選べることがわかりました。
ここまでわかれば解決は簡単です。
解決
DATEVALUE関数で日付を変更した新しい横軸データを作成します。
この新しい横軸は数字なので当然、間隔を選択できるようになります。
とはいえこのままだと横軸の表示が数字だと困るので、今度は横軸>表示形式、と選択して「ソースデータの表示形式」から「日時」に変更してあげます。
あとは任意の日時形式を選ぶだけ。
横軸が日付に再変換されました。
あとは間隔を設定しあげるだけです。
DATEVALUEは見ての通り1日増えると1増えるので、単純に間隔が1なら毎日、間隔が7なら1週間間隔になります。
さらに補助目盛線の間隔を設定してあげれば1週と1日とか4週と1週とかグリッドラインを細かくカスタマイズできるようになります。
あとは用途に応じて細かくカスタマイズするだけですね。
一旦数字に変換すればいいとわかれば簡単だけど、わかるまで結構時間を無駄にしてしまいました……。■