エクセル技道場 RSSを登録する

Excelの効率的な操作の技、条件付き書式・入力規則などの機能をさらに便利に使いこなす技、組み合わせて使う関数の技などを配信。

最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2002/07/19

【エクセル技道場】No.353 可変範囲のグラフ

この記事を取り寄せる

----------------------------------------------------------------------
         レンタルサーバ選び...価格や機能だけで選びますか?

           『ヘルプデスクが親切でわかりやすかった:83%』
          安心と基本性能を重視したレンタルサーバはこちらです
              http://m.parkfield.co.jp/R/J.asp?X=56&Y=9
----------------------------------------------------------------------

■【エクセル技道場】No.353 2002/ 7/19 発行部数:14,718 不定期
■ http://www2.odn.ne.jp/excel/ まぐまぐID: 31665

◇可変範囲のグラフ

【問題】

 A1:B5に以下のデータが入っています。

item    data
a    1
b    2
c    3
d    4

 これで棒グラフを作成すると以下のようになります。

|    |
|   ■|
|  ■■|
| ■■■|
|■■■■|
 a b c d

 これに例えば、A6:B6にデータを追加して

item    data
a    1
b    2
c    3
d    4
e    5

になると、追加されたデータを自動的に反映してグラフが以下のようになるにはどう
すれば良いでしょうか?

|    ■|
|   ■■|
|  ■■■|
| ■■■■|
|■■■■■|
 a b c d e

 なお、グラフのデータ範囲をあらかじめ広くとっておく(例えばA1:B6)と、

|     |
|   ■ |
|  ■■ |
| ■■■ |
|■■■■ |
 a b c d 

のようになりますが、A6:B6にデータが入力されていない時は、

|    |
|   ■|
|  ■■|
| ■■■|
|■■■■|
 a b c d

と表示させたいのです。つまりグラフのデータ範囲を可変にしたいのです。

 それから、マクロは使いません。

===[ ▼PR ]=========================================================

☆☆☆☆『ディズニーの英語システム』無料サンプルプレゼント!☆☆☆☆
0〜6才のお子さまをお持ちの方(マタニティ含)にディズニーキャラクター
がたくさん登場するかわいい絵本とCDの無料サンプルをプレゼント!25周年
記念限定の人気の歌が映像で楽しめる「DWEおためしビデオ」もプレゼント!
 http://211.10.20.135/a/a.cgi?k03735m01057 

========================================================[ ▲PR ]====

【エクセル技道場】 あなたの知りたいエクセルの技がここにある
http://www2.odn.ne.jp/excel/

【回答】

 ファイル名が dynamic だとします。

 まずは名前定義です。

1.Ctrl+F3(メニュー[挿入]-[名前]-[定義])
2.[名前]に label と入力
3.[参照範囲]に =$A$2:INDEX($A:$A,COUNTA($A:$A)) と入力
4.[追加]ボタンをクリック
5.[名前] value と入力
6.[参照範囲]に =$B$2:INDEX($B:$B,COUNTA($B:$B)) と入力
7.[OK]ボタンをクリック

 グラフを作成します。

1.A1:B5内のセルどれかを選択
2.メニュー[挿入]-[グラフ]
3.[次へ]ボタンをクリック
4.[系列]タブで[値]に =dynamic.xls!value と入力
5.[項目軸ラベルに使用]に =dynamic.xls!label と入力
6.[完了]ボタンをクリック

===[ ▼PR ]=========================================================

★私にもできた!★アルクの英会話入門講座の決定版イングリッシュキング
  こんな人にオススメ1  ⇒  「英語を基礎からやり直したい」
  こんな人にオススメ2  ⇒  「英会話にまったく自信がない」
     1日20分×週3日の学習でOK! 受講は1ヵ月4,000円(税別)
10日間の試聴が可能⇒ http://211.10.20.135/a/a.cgi?k03645Bm01057 

========================================================[ ▲PR ]====

【解説】

 サンプルファイルを用意しました。
 ↓の新着情報から開けます。
http://www2.odn.ne.jp/excel/


○○ あとがき ○○

 こんにちは

 今回の問題の回答を募集しておりましたが、回答をお寄せいただいたのは、浅野さ
んお一人だけでした。
 浅野さんよりいただいた詳細なメールを以下にご紹介させていただきます。

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

janmaさん、こんにちは。浅野です。ご無沙汰しています。

【次回の問題】に対する私の解答です。
----------------------------------------------------------------
Sheet1 のセル範囲 A1:B5 に

item    data 
a    1
b    2
c    3
d    4

というデータが入っている場合、セル範囲 A1:B5 を選択して、グラフ
ウィザードを使って棒グラフを作成すると、データ系列を表す式は、次
のようになります。

=SERIES(Sheet1!$B$1,Sheet1!$A$2:$A$5,Sheet1!$B$2:$B$5,1)

そこで、[挿入] - [名前] - [定義] メニューで、

[名前]     Sheet1!item
[参照範囲] =OFFSET(Sheet1!$A$1,1,0,COUNTA(Sheet1!$A:$A)-1,1)

[名前]     Sheet1!data
[参照範囲] =OFFSET(Sheet1!$A$1,1,1,COUNTA(Sheet1!$A:$A)-1,1)

という2つの名前を定義し、データ系列の式を以下のように修正します。

=SERIES(Sheet1!$B$1,Sheet1!item,Sheet1!data,1)

これでグラフのデータ範囲を可変にすることができます。

しかし、項目軸のデータである item 列の中間に空白データが含まれる
場合、この方法はうまくいきません。この場合に対応するには、名前の
定義を以下のようにします。ただし、この方法を用いることができるの
は、item 列の下端のデータが文字列である場合に限ります。

[名前]     Sheet1!item
[参照範囲] =OFFSET(Sheet1!$A$1,1,0,MATCH("",Sheet1!$A:$A,-1)-1,1)

[名前]     Sheet1!item
[参照範囲] =OFFSET(Sheet1!$A$1,1,1,MATCH("",Sheet1!$A:$A,-1)-1,1)
----------------------------------------------------------------
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

【エクセル技道場】 あなたの知りたいエクセルの技がここにある
http://www2.odn.ne.jp/excel/


 最近は「答えてねっと」でよく回答つけています。
 読者の皆様もエクセル関係でわからないことがありましたら、「答えてねっと」で
質問されてみてはいかがでしょうか?

答えてねっと http://www.kotaete-net.net/

「「答えてねっと」は、マイクロソフト製品をはじめとした、パソコン一般に関する
トラブルや疑問などを、24 時間いつでも無料でご利用いただけます。」

■■■■■掲載内容に起因する問題の責は負いかねます。
■本誌の転載等は非商用利用に限ります。出典明記でお願いします。
■解除■まぐまぐ: http://www.mag2.com/m/0000031665.htm
■発行者:janma
■■■■■【エクセル技道場】 http://www2.odn.ne.jp/excel/

この記事を取り寄せる
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る