まりふのひと

Excel散布図でデータ範囲の変更は面倒!Offset関数を使っての自動更新も面倒!

 炭焼き記録の「精錬度」散布図Excel)は、前回分をコピーし、グラフデータを作り替えて使用していたはず...
が、炭を焼くのも久し振りなら、散布図を作るのも久し振り‥‥ で、グラフデータは簡単に作り替えたが、グラフデータを選択し直す(データの選択)と散布図が崩れる 
何度やっても同じ‥‥ で、とうとう一から作り直したぁ〜〜〜


 一晩考えると‥‥ そういえば散布図のデータの選択し直しは出来なかったような記憶が... で、「まりふのひと」の記事一覧から“散布図”で検索すると、

 ありましたぁ〜〜〜 確かにできましたッ!
が、データが違うので解りに難いところがあり、改めて備忘録として整理した。


§1.グラフデータ


 使用するデータは右図の選択してある列(実際には 65行まで入力してある)で、

  1. C列:底から
    • 散布図の横軸にするデータ。欠損値はない。
  2. D列:抵抗値
    • プロットするデータで、欠損値がある。
  3. F列:平均精錬度
    • 「東西南北」の1〜8の「抵抗値」の平均(平均抵抗値)の精錬度に換算した値。
    • E2 の計算式は “=Average(D2:D9)”、
      F2 の計算式は “=Log(E2)”
§2.散布図


 まずはグラフデータを選択し、散布図を作る。(右図は完成状態)

  • フォントは好きな「メイリオ」、フォントサイズは 14pt.に統一する
    1. グラフエリアを右クリック ⇒[フォント]
    2. 日本語用のフォントを “メイリオ”、サイズを “14”とした。
      英数字用のフォントは “(日本語用のフォントを使用)” になっていた?
  • 主軸(左側の縦軸)は ☑対数目盛を表示する。
  • 第2軸は、平均精錬度。
  • 平均精錬度の2区間移動平均はおまけ。
§3.グラフデータの範囲を手動で変更する

 C列(底から)は 65行までデータは入っているが、これを57行までの散布図に変更する。

  1. グラフエリアを右クリック ⇒[データの選択]
  2. 【データソースの選択】ダイアログボックスで

    ここで「グラフデータの範囲」を変更すると、散布図が崩れる
    1. 凡例項目(系列)の「抵抗値」を選択し、
    2. [編集]をクリックする。
    3. 系列Xの値を “=グラフデータ!$C$2:$C$57” に変更する。
      系列Yの値を “=グラフデータ!$D$2:$D$57” に変更する。
    4. [OK]

    5. 凡例項目(系列)の「平均精錬度」を選択し、
    6. [編集]をクリックする。
    7. 系列Xの値を “=グラフデータ!$C$2:$C$57” に変更する。
      系列Yの値を “=グラフデータ!$F$2:$F$57” に変更する。
    8. [OK]
  3. [OK]で閉じると、グラフが更新される。
§4.グラフデータの範囲を自動更新する

 Offset関数を使って、名前を定義する。
まずは参考にしたサイト

  • Excel2010 散布図を自動更新させるには(教えて!HELPDESK)
     追加入力されたデータで散布図を自動更新させる方法をご紹介します。(サンプルファイルダウンロード)
    更新可能なセル範囲を返すOFFSET関数を使って範囲に名前を付け、これをデータ系列として指定します。
  • Excel2010:指定した数だけシフトした範囲を返す(OFFSET関数)(教えて!HELPDESK)
     基準位置から指定した行数、列数ぶん移動した『位置』 や『セル範囲』を返すことができます。

     OFFSET (基準値 , 行数 , 列数 , 高さ , 幅)
     OFFSET(基準とするセルを指定 , ○行移動 , ○列移動 ,○行選択 , ○列選択)

    • OFFSET関数ではセルの位置 (や範囲)を返す関数です。通常このままでは使わず、他の関数と組み合わせて使います。
    • 「高さ」と「幅」は、返り値がセル範囲の場合に指定します。(省略した場合、基準値と同じ行(高さ)、列(幅)が返ります)
    • OFFSET関数で【行全体】【列全体】を返したい場合は、高さと幅を省略した場合は基準値と同じ範囲を返すことを利用して最初の基準値を行(列)全体とします。

     例えばOFFSET($C:$C,0,1)とするとD列のデータを全て返します。

 今回の散布図に限定すると、

  • C列(底から)は 65行までデータは入っており、セルC2〜C65 を選択する。

これを Offset関数を使って記述すると、次のようになる。

  =OFFSET(グラフデータ!$C$2,0,0,COUNTA(グラフデータ!$C:$C)-1,1)

    • 第1引数「基準とするセルを指定」:グラフデータ・シートのセルC2
    • 第2引数「〇行移動」: 0 ‥‥ 移動しない
    • 第3引数「〇列移動」: 0 ‥‥ 移動しない

       この結果、基準のセルは C2 となる。

    • 第4数「〇行選択」:グラフデータ・シートのC列で、値が入っているセルの数(CountA)−1
      • マイナス1 しているのは、1行目(項目名)はデータでないため。
    • 第5引数「〇列選択」: 1 ‥‥ 1列,基準列はC列なのでC列のみ‥‥ となる。

 すなわち、セルC2から C列の 64行分を選択することになる。

§4.1 グラフにする項目の名前を定義する
  • 名前「底から」‥‥ 横軸
    1. グラフデータ内にカーソルを移す。
    2. 数式・タブ/定義された名前・グループの[名前の定義]をクリックする。
    3. 次のように入力する。
      • 名前:“底から”
        • 名前は任意。ここでは、セルC1と合わせた。
      • 参照範囲:“=OFFSET(グラフデータ!$C$2,0,0,COUNTA(グラフデータ!$C:$C)-1,1)”
    4. [OK]
  • 名前「抵抗値」enter>
      • 名前:“抵抗値”
      • 参照範囲:“=OFFSET(グラフデータ!$D$2,0,0,COUNTA(グラフデータ!$C:$C)-1,1)”
  • 名前「平均精錬度」
      • 名前:“平均精錬度”
      • 参照範囲:“=OFFSET(グラフデータ!$F$2,0,0,COUNTA(グラフデータ!$C:$C)-1,1)”
§4.2 データソースの修正
  1. グラフエリアを右クリック ⇒[データの選択]
    • または、デザイン・タブ/データ・グループの[データの選択]
  2. 【データソースの選択】ダイアログボックスの
    1. 凡例項目(系列)の「抵抗値」を選択し、[編集]する。
    2. 次のように入力して、[OK]。
      • 系列名:変更しない。
      • 系列Xの値
        1. をクリックする。
        2. グラフデータ・シートを選択する。
        3. “ブラフデータ!****” と表示されるので、**** を選択し、“底から” と入力する。
        4. [OK]
      • 系列Yの値
        1. をクリックする。
        2. グラフデータ・シート見出しを選択する。
        3. “グラフデータ!********” と表示されるので、******** を選択し、“抵抗値” と入力する。
      1. 上図のように表示されたら、[OK]。

         再度[編集]すると、表示が変わっているが無視してよい。(ブック名!名前 が正式な入力)

    3. 凡例項目(系列)の「平均精錬度」を選択し、[編集]する。
    4. 次のように入力して、[OK]。
      • 系列名:変更しない。
      • 系列Xの値
        1. をクリックする。
        2. グラフデータ・シート見出しを選択する。
        3. “グラフデータ!********” と表示されるので、******** を選択し、“底から” と入力する。
      • 系列Yの値
        1. をクリックする。
        2. グラフデータ・シートを選択する。
        3. “ブラフデータ!********” と表示されるので、******** を選択し、“平均精錬度” と入力する。
      1. 上図のように表示されたら、[OK]。
  3. [OK]をクリックすると、散布図が自動更新される。

編集後記

  • 使用したファイルは「2016-1211【竹炭物語】83th昭輔窯の精錬度.xlsx」で、マイコレクションにある。