Excelでは常に最新の5日間のデータをグラフに表示させることができます。日々記録するデータなどはどうしてもデータ数が大きくなってしまい、グラフにすべて表示すると見づらくなってしまいます。そのため、最新5日間など特定の期間に絞って表示させたいと思います。手作業でグラフを変更するのも面倒なので、自動的に最新の5日間のデータが表示されるようにします。
常に最新の5日間のデータをグラフに表示させる方法
今回はこのような日々の売上のデータを記録した営業記録表を使用します。

まず、表全体を選択し、グラフを作成します。この状態では、すべてのデータが表示されているので、下5行の5日分のデータのみを表示されるようにします。

ここでは、名前の定義を活用し、日と売上の列両方で、最新5日分の範囲を自動的に参照するようにします。日の列を選択し、数式タブから名前の定義をクリックします。

新しい名前のウィンドウが表示されるので、名前には、日、範囲にはシート「営業記録」を選択します。範囲はこの名前の適用範囲です。別のシートでもこの名前を使用する場合は、ブックを指定します。

次に参照範囲にはOFFSET関数を使って自動的に最新5日分のデータを参照するようにします。OFFSET関数は指定したセルを基準に、行数と列数を指定して範囲を返す関数です。
=OFFSET(営業記録!$A$2,COUNTA(営業記録!$A:$A)-5,0,5,1)

引数 | 数式 | 役割 |
---|---|---|
基準 | 営業記録!$A$2 | 「日」の列の一番上のセルA2を指定する。 |
行数 | COUNTA(営業記録!$A:$A)-5 | A列のデータがあるセルの数から5日分を差し引いたセルまで移動するので、COUNTA関数でA列を指定し、そこから「5」を差し引く。表示させる日数を変更したい場合は任意の数を指定する。 |
列数 | 0 | 参照する範囲は「日」の列で、基準から移動する必要はないため「0」を指定。 |
高さ | 5 | 表示させる範囲である5日分の「5」を指定する。 |
幅 | 1 | 参照する列数は「日」の1列なので、幅には「1」を指定する。 |
これで、日の列に関して最新の5日分のみのデータを参照する範囲を定義することができました。
次に売上の列の名前の定義を行います。やり方は先ほどと同じで、数式タブから名前の定義を選択します。

任意の名前、範囲を選択します。

参照範囲は、上記の数式の基準のセルを売上の一番上のセルB2に変更します。
=OFFSET(営業記録!$B$2,COUNTA(営業記録!$A:$A)-5,0,5,1)
これで、売上の列に関して最新の5日分のみのデータを参照する範囲を定義することができました。
最後に、グラフのデータの範囲を変更します。グラフ部分をクリックすると、数式バーに現在の参照範囲が表示されます。

今は表全体を選択していますが、これを先ほど定義した範囲に変更します。
=SERIES(営業記録!$B$2,営業記録!日,営業記録!売上,1)
SERIES関数の引数の2つ目は項目名を指定するので、この範囲を「日」に変更します。次に、引数の3つ目はデータを指定するので、範囲を「売上」に変更します。
そうすると、最新5日分のデータのみが表示されるようになりました。

さらに下に新しいデータを追加すれば、自動的に参照範囲が変わります。

このようにOFFSET関数を活用することで、動的にグラフの表示範囲を変更させることができます。
コメント