【Excel】エクセルでグラフにスクロールバー配置してスクロールできるようにする方法
グラフを横スクロールしたい
大量のデータでグラフ表示した際に、細かすぎて分かりづらい思ったことありませんか。そんなときに、スクロールバーを付けて任意のデータを見やすくさせたらいいではないか。と、いうことで、今回は、
グラフにスクロールバーを設置してみましょう。
※サンプルのExcelを配布します。
グラフを作成

今回は、サンプルとして、データ数10,000データのグラフを表示してみました。

全体のグラフを表示してましたが、ぱっと見でデータの詳細は分かりません。もっと部分的に見れるようにしてみましょう。
スクロールバー設置_完成形
まずは、完成形から示します。

データを抜粋したグラフ(1~50のデータ)を表示しました。
ここからスクロールバーを右にずらしていくと、

51~100までのデータを表示してくれます。この結果から、横スクロールが出来ていることが分かると思います。
データ変換設定方法
可変的にグラフ範囲のデータを変える方法は、
全体データがあるシートとは別シート(サンプルファイルでは[抜粋]シート)を作成して頂き、該当セルに数式を書いていきます。



数式を見ての通り、INDEX関数を使って、homeシートの全体データを抜き出しています。
- B3セル数式 =INDEX(home!$B$5:$B$10004,抜粋!$E$1+ROW()-2)
- C3セル数式 =INDEX(home!$C$5:$C$10004,抜粋!$E$1+ROW()-2)
- ・・・
- J3セル数式 =INDEX(home!$J$5:$J$10004,抜粋!$E$1+ROW()-2)
数式の[+ROW()-2]の部分が何行目のデータを引っ張ってくるのかを表している。homeシートとの出た参照セルが一致しているか確認しましょう。
グラフに抜粋して表示したい範囲分の行数分のデータを参照してやる。
今回は、50個のデータを1スクロール分で表示しているので、50行分のデータをINDEXで取得している。

どの行数目から取得するかの設定値はE1セルの数値を見ている。
E1セル=0なら先頭のデータから50データ分をINDEX参照して表示する。
E1セル=500なら501データ目から550データ分をINDEX参照して表示する。
E1セルの値を手入力で変更してあげれば、任意のデータ目から50データ分を表示できる。
概念を図で説明致しましょう。

分かりづらいかもしれませんが、10000データを50データ分ずつ区切ってグラフにしてスクロールできるようにしたということです。
グラフ設定
今回は、折れ線グラフで設定してます。

50データ分の範囲のグラフ設定です。ここは、1スクロール分で表示させたいデータ数で任意に変えて下さい。
スクロールバー設定方法
スクロールバーは、開発タブ>挿入>フォームコントロール>スクロールバーで設置できる。

任意の場所で任意のスクロールバーの形を形成させると、スクロールバーが配置される。

スクロールバーが設置出来たら、右クリックでコントロールの書式設定を開く。

コントロールタブで設定値を変更する。

最大値は、全データ数で任意に設定。
変化の増分は、今回は50データ分抜粋して表示させるので、50に設定。
スクロールバー シャフトの増分は、1スクロールした分のバーの移動量なので、任意に設定。
リンクするセルは、先頭データの行目を設定するE1セルを設定。
OKを押下で設定適用する。
—追記(2022-03-31)—–
スクロールバーのデータ数の最大値は、30000までのようです。

まとめ
今回は、大量のデータ数でグラフが見づらい時にスクロールバーを付けて細かくデータを区切って見えるようにする方法をご紹介しました。
予兆管理、データロギング等で膨大なデータを扱う時に役に立つと思います。
打ち合わせやプレゼン時にグラフを見やすくする為に活用するのも良いですね!!