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