動的な名前付き範囲を使用してExcel2010で散布図を作成しようとしていますが、機能させるのに問題があります。失敗している簡単な例を次に示します。
Excelを開き、新しいブックを開始します
データを入力してください:
セルD1に、_$A$1:$B$5
_と入力します。 (私の実際のシートでは、これは動的に計算されますが、手動入力にはまだ問題があります)。
リボンで、[数式]、[名前の定義]の順にクリックします。以下に示すように、=INDIRECT(Sheet1!$D$1)
を使用して、_MyRange1
_をシートローカル名として定義します。
[OK]をクリックして、散布図を挿入します。
[データの選択]ダイアログを開き、_='Sheet1'!MyRange1
_と入力します
Excelがクラッシュする...
この問題は、Windows XPとWindows7 with Excel 2010の両方で発生し、毎回繰り返されます。
私も試しました:
Xおよびyデータの個別の範囲を定義し、[系列の編集]ダイアログを使用します。 X値フィールドに_='Sheet1'!MyXRange
_を入力すると、Excelはダイアログを終了するエスケープキーを除いて、キーボードとマウスの入力の受け入れを停止します。ダイアログに戻ると、クラッシュしますか。
名前付き範囲をワークシートではなくブックにスコープします。これは実際にはクラッシュを停止しますが、_=MyRange1
_または_='Sheet1'!MyRange1
_のどちらを入力したかに応じて、[データの選択]ダイアログでエラーが発生します。
これは既知の問題ですか、それとも報告する場所がありますか?ここにExcel 2007または2003がないため、問題が2010に限定されているかどうかを確認できません。これが機能しない場合は、動的な名前付き範囲の代わりにVBAを使用するだけです。
更新:私はそれを理解したと思いました(回答を投稿しましたが、今は削除しました)。セルD1 = $ A $ 1:$ B $ 5の値をD1 = 'Sheet1'!$ A $ 1:$ B $ 5に変更すると、グラフが正しく作成されます。ただし、グラフが作成されたときは動的ではないようです。現在の値を使用してXシリーズとYシリーズを作成しただけなので、D1を変更してもグラフは更新されません。
INDIRECTを使用して範囲を定義すると、グラフは範囲を正しく使用しないことが多く、これらの名前付き範囲を受け入れないこともよくあります。たとえばINDEXやOFFSETを使用して、ダイナミックレンジを定義するためのより良い(より堅牢な)方法があります。
名前がグラフで認識される場合でも、[データソースの選択]ダイアログの[グラフのデータ範囲]ボックスのセルアドレスに変換されます。名前は、個々のシリーズごとに、X、Y、およびシリーズ名の範囲でのみ保持されます。
セルD1のシート名を範囲の前に付けると、グラフには完全修飾範囲が必要であるため、セルD1にSheet1!$A$1:$B$5
が含まれている場合は、[データソースの選択]ダイアログの[グラフデータ範囲]ボックスで定義した名前を使用できます。ポイント2ごとに、[OK]をクリックすると、Excelはこの範囲をセルアドレスに変換することに注意してください。
以下のリンクと私の個人的なテストによると、次の形式でデータ系列を入力する必要があります
'WorkbookName.xls'!RangeNameX
名前が動的である場合、結果のグラフも動的になります。動的な名前付き範囲に使用した式は次のとおりです(状況に合わせて変更し、X範囲とY範囲の両方に使用します)。
=OFFSET($A$1,0,0,MATCH(1E+306,$A:$A,1),1)
これは、チャートに新しく追加された値を追加する限り、チャートを動的にするために機能しました(チャートを更新する前にX値とY値の両方が必要です)。
チャートの設定方法のソース-Microsoft Q&Aサイトダイナミックレンジを使用するためのホットソース-OZGrid
これが動的チャートの作成方法です。
データからテーブルを作成します。
テーブルにデータを追加すると、チャートにも更新されます。