Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2019)
データが増えていく場合のグラフ作成
投稿日時: 25/10/19 18:38:22
投稿者: shimoichimabu

A列に日付、BからF列は金額のデータが入力されています。
このデータで折れ線グラフを作成しています。
しかし、データは順次入力されており、グラフのデータ範囲は大きくなっていきます。
その都度、データ範囲を設定するのは煩雑です。
そこで、グラフを右クリックして、
「データの選択」→「グラフデータの範囲」の欄に直接
=INDIRECT("A2:F" & COUNTA(A:A)+1)
を入力すると、以下のようにエラー出ます。
 
入力した数式にエラーあります。
・必要なかっこや引数がすべて含まれていることをご確認ください。
・・・・・・・・・・
・・・・・・・・・・
 
そこで、上記数式を「データ範囲」という名で名前定義しました。
先ほどの「グラフデータの範囲」の欄に=データ範囲と入力したところ、
希望するデータ範囲のグラフが作成されていません。
しかも最初に手で設定した範囲が「グラフのデータ範囲」の欄に=Sheet1!$A$2:$F$27が表示されています。
=データ範囲と入力したのに・・・・。
データ範囲が増えた状態=Sheet1!$A$2:$F$28のグラフが作成されていません。
 
どこが間違っているでしようか?

回答
投稿日時: 25/10/20 08:24:39
投稿者: んなっと

元データをテーブルに変換してから新たに折れ線グラフを作成しましょう。
これが一番です。
 
名前定義とOFFSET関数を使って可変にするのは、系列の数が少ない場合です。
今回のように系列の数が5個の場合、項目のA列も含めて6個の名前定義が必要だと思います。
(もしかしたら最新のExcelでは違うのかもしれませんが、試していません)

投稿日時: 25/10/20 21:08:44
投稿者: shimoichimabu

んなっとさん回答ありがとうございます。
 
>今回のように系列の数が5個の場合、項目のA列も含めて6個の名前定義が必要だと思います。
 
新たにブックを作成し、
グラフデータの範囲を =範囲と入力し、
凡例項目でそれぞれ設定しようとすると、やはり、下記エラーが出ます。
 
入力した数式にエラーあります。
・必要なかっこや引数がすべて含まれていることをご確認ください。
・・・・・・・・・・
・・・・・・・・・・
 
具体的にはどのようにしたら宜しいでしようか?
 

回答
投稿日時: 25/10/21 05:40:41
投稿者: んなっと

テーブルに変換するのをおすすめしたのですが、無視ですか?
 
【OFFSETを使った名前定義6個作成する面倒な方法】
(ブック名Book1.xlsx,シート名Sheet1の場合)
 
1.名前定義6個
A列日付  次の数式に名前定義で hanni0 と名付ける
=OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A:$A)-1)
B列金額1 次の数式に名前定義で hanni1 と名付ける
=OFFSET(Sheet1!$B$2,,,COUNTA(Sheet1!$A:$A)-1)
C列金額2 次の数式に名前定義で hanni2 と名付ける
=OFFSET(Sheet1!$C$2,,,COUNTA(Sheet1!$A:$A)-1)
.....F列まで繰り返し
 
2.数式バーの数式変更
B列の折れ線をクリックして数式バーの数式を次のように変更
=SERIES(Sheet1!$B$1,Book1.xlsx!hanni0,Book1.xlsx!hanni1,1)
C列の折れ線をクリックして数式バーの数式を次のように変更
=SERIES(Sheet1!$C$1,Book1.xlsx!hanni0,Book1.xlsx!hanni2,2)
.....F列まで繰り返し
 
 
【INDIRECTを使う方法】
1.
=INDIRECT("Sheet1!A2:A"&COUNTA(Sheet1!$A:$A))
=INDIRECT("Sheet1!B2:B"&COUNTA(Sheet1!$A:$A))
=INDIRECT("Sheet1!C2:C"&COUNTA(Sheet1!$A:$A))以降は上と同じ

回答
投稿日時: 25/10/21 13:36:16
投稿者: 紙頼

shimoichimabuさん
Webで
「Excelデータをテーブルに変換する方法」等検索してみてはどうでしょうか。
 
「元データをテーブルに変換してから新たに折れ線グラフを作成しましょう。」の意味が理解できるような気がしますが・・・。

回答
投稿日時: 25/10/21 16:33:46
投稿者: んなっと

紙頼さん、フォローの書き込みありがとうございます。
これからもよろしくお願いします。

投稿日時: 25/10/21 18:01:08
投稿者: shimoichimabu

んなっとさん回答ありがとうございます。
 
>元データをテーブルに変換してから新たに折れ線グラフを作成しましょう。
この意味がよく理解できていませんでした。
すでにデータは表(テーブル)になっているので、何故かなと思いつつ考えがおよびませんでした。
紙頼さんの御助言をもとに、テーブルを作成し、新たにグラフをつくりました。
紙頼さん御助言ありがとうございます。
 
INDIRECTを使う方法】
1.
=INDIRECT("Sheet1!A2:A"&COUNTA(Sheet1!$A:$A))
=INDIRECT("Sheet1!B2:B"&COUNTA(Sheet1!$A:$A))
=INDIRECT("Sheet1!C2:C"&COUNTA(Sheet1!$A:$A))以降は上と同じ
 
この数式はどこに入力するのでしようか?
グラフを右クリック→データの選択→フィールド名選択→凡例項目の編集ボタンを押す→
系列値の欄に=INDIRECT("Sheet1!A2:A"&COUNTA(Sheet1!$A:$A))と各フィールドごとに順次入力?
 
基本的なことが分からず、すみません。

回答
投稿日時: 25/10/21 18:05:33
投稿者: んなっと

【OFFSETを使った名前定義6個作成する面倒な方法】
【INDIRECTを使う方法】
この2つは使わないように。まったく現実的ではありません。
 
最初に書いた「テーブルに変換してから新たに折れ線グラフを作成」、これで完了です。

投稿日時: 25/10/22 20:00:59
投稿者: shimoichimabu

んなっとさん回答ありがとうございます。
 
>【OFFSETを使った名前定義6個作成する面倒な方法】
>【INDIRECTを使う方法】
>この2つは使わないように。まったく現実的ではありません。
 
テーブルに変換してから新たに折れ線グラフを作成する方法にしました