エクセル関数応用
グラフのデータ範囲を可変にする

Excel関数の解説、関数サンプルと高等テクニック
公開日:2013年5月以前 最終更新日:2013-06-09

グラフのデータ範囲を可変にする


データの範囲に合わせて、自動的にグラフのデータ範囲が変更されるようにします。


グラフのデータ個数が増えるたびに、

「データの選択」(2003は元データ)を変更するのは、いかにも面倒です。

できれば、マクロでやりたいところですが、マクロはちょっという人用に解説します。

一応、マクロも最後に載せています。

以下の表で説明します。

Excel VBA 解説


作成するグラフは、以下になります。

Excel VBA 解説


グラフはなんでも結構です。


ていっても限度がありますけど、上記の表なら折線か棒グラフくらいでしょう。

まず、名前定義をします。シート「リスト」を選択します。

  1. データのあるシートを選択
  2. Ctrl+F3で名前定義を起動する。メニュー等からの起動はバージョン毎に違います。
  3. 新規作成(追加)
  4. 「名前」に「グラフ軸」と入力。
  5. 「参照範囲」に「=OFFSET($A$2,0,0,COUNTA($A:$A)-1,1)
  6. 「OK」
  7. 新規作成(追加)
  8. 「名前」に「グラフデータA」と入力。
  9. 「参照範囲」に「=OFFSET($B$2,0,0,COUNTA($A:$A)-1,1)
  10. 「OK」
  11. 新規作成(追加)
  12. 「名前」に「グラフデータB」と入力。
  13. 「参照範囲」に「=OFFSET($C$2,0,0,COUNTA($A:$A)-1,1)
  14. 「OK」

2007以降の場合は、「範囲」は、「ブック」にして下さい。


では、グラフの設定です。

2007以降は、「データの選択」

Excel VBA 解説


ここで、「軸ラベル」の「編集」

Excel VBA 解説

範囲に、「ブック名!グラフ軸」と入れます。

ブック名は、拡張子も含めて正しく設定する必要があります。

続いて、「系列」の「編集」

Excel VBA 解説

これを、全ての系列に対して行います、ここでは2系列です。

名前定義したデータ列と一致するように、注意してください。

2003では、「元のデータ」

Excel VBA 解説


上図のように設定して下さい。

全ての系列に対して、行って下さい。

以上で完成です。

少し面倒ですが、一度設定してしまえば、データ個数に自動対応されますので、

その後は保守が楽になります。

しかし、この方法はいかにも面倒です。

系列が増えるたびに、名前定義からやらなければなりません。

やはり、できれば、マクロでやる事をお勧めします。

以下に、そのコードを一例を示しておきます。

Sub test()
  Dim i As Long, F As String, lngMax As Long
  lngMax = Cells(Rows.Count, 1).End(xlUp).Row
  With ActiveSheet.ChartObjects(1).Chart
    For i = 1 To .SeriesCollection.Count
      .SeriesCollection(i).Formula = _
        "=SERIES(" & _
        Cells(1, i + 1).Address(External:=True) & "," & _
        Cells(2, 1).Resize(lngMax - 1, 1).Address(External:=True) & "," & _
        Cells(2, i + 1).Resize(lngMax - 1, 1).Address(External:=True) & "," & _
        i & ")"
    Next i
  End With
End Sub


このマクロは、系列のデータが連続したセルにあることを前提にしています。

今回は、関数としての紹介なので、VBAの説明は省略します。


しかし、このマクロを実行すれば、

直ちにデータ範囲も変更されますし、系列が増えても、このマクロは変更が必要ありません。



同じテーマ「エクセル関数応用」の記事

誕生日一覧から、指定誕生月の人を全員取り出す

配列数式を使って、誕生日が指定月の該当者全員を取り出します。各種条件でデータを絞る場合は、オートフィルタが一般的に使用されますが、日付の中の、月だけの指定になると、お手上げです。(出来ない事はありませんが、かなり面倒です。
徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)
・解説に使うシート ・VLOOKUP関数 ・INDEX関数とMATCH関数の組み合わせ ・OFFSET関数とMATCH関数の組み合わせ ・VLOOKUPを他の関数でやる方法 ・徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)の最後に
セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)
・説明で使用するエクセル表 ・OFFSET関数 ・MATCH関数 ・COUNTA関数 ・セルの参照範囲を可変にする数式の解説 ・全合計(E1)の数式 ・開始日(E3)と終了日(E3)に名前定義とリストを設定 ・期間合計(E5)の数式 ・短く易しい数式で
グラフのデータ範囲を可変にする
セルの個数を数える関数
セルの個数を数える関数を解説します COUNT関数 COUNTA関数 COUNTBLANK関数 COUNTIF関数 になります。以下の表で説明します。COUNT関数 これは、数値のみカウントします。セルの書式や、先頭に「'」等があっても数値ならカウントされます。
【奥義】大量データでの高速VLOOKUP
・高速VLOOKUPに使用するサンプルデータ ・高速VLOOKUPの数式 ・高速VLOOKUPの数式解説 ・高速VLOOKUPの補足
数値を時刻に変換
・数値を時刻に変換:方法1 ・数値を時刻に変換:方法2 ・数値を時刻に変換:方法3 ・数値を時刻に変換の注意点
関数のネスト方法
関数のネスト(入れ子)をする場合の、考え方と作成方法です。IF関数のネスト作成方法 A列の数値によって、B列に"A"から"E"の評価を入れます。・80以上はA ・60以上はB ・40以上はC ・20以上はD ・20未満はE この場合は、まず、=IF(A1>=80,
ワイルドカードが使える関数
・ワイルドカードについて ・データベース関数を除くExcel2003までの関数 ・データベース関数を除くExcel2007以降 ・2020年3月現在のOffice365 ・ワイルドカードの使用例
グラフで特定の横軸の色を変更し基準線を引く
特定の横軸のみ色を変更する、つまり、基準値や下限・上限等に線を引く場合の手順です 基準値や、下限・上限等に線を引きたい場合になります。結構面倒なので、いざやろうとすると、なかなか出来なかったりしますので、自分自身の覚書を兼ねて掲載しておきます。
OFFSET関数 解説・応用・使用例
OFFSET関数は、検索ワードで最頻出のひとつです。他の関数とは、かなり異質に感じるのかもしれません。機能 基準のセルまたはセル範囲から指定された行数と列数だけシフトした位置にある高さと幅のセル範囲の参照を返します。


新着記事NEW ・・・新着記事一覧を見る

ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)
テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)
ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)
VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)
テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)
無効な前方参照か、コンパイルされていない種類への参照です。|エクセル雑感(2024-02-17)
初級脱出10問パック|VBA練習問題(2024-01-24)
累計を求める数式あれこれ|エクセル関数応用(2024-01-22)
複数の文字列を検索して置換するSUBSTITUTE|エクセル入門(2024-01-03)
いくつかの数式の計算中にリソース不足になりました。|エクセル雑感(2023-12-28)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|VBA入門
4.ひらがな⇔カタカナの変換|エクセル基本操作
5.繰り返し処理(For Next)|VBA入門
6.変数宣言のDimとデータ型|VBA入門
7.ブックを閉じる・保存(Close,Save,SaveAs)|VBA入門
8.並べ替え(Sort)|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.Findメソッド(Find,FindNext,FindPrevious)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。


このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ