
我正在嘗試使用動態命名範圍在 Excel 2010 中建立散點圖,但無法使其正常工作。這是失敗的簡單範例:
開啟Excel,開始一個新的工作簿
輸入一些數據:
在儲存格 D1 中,輸入:
$A$1:$B$5
。 (在我的真實工作表中,這是動態計算的,但手動輸入仍然有問題)。在功能區上,按一下「公式」、「定義名稱」。使用如下所示 定義
MyRange1
為工作表本機名稱:=INDIRECT(Sheet1!$D$1)
按一下“確定”,然後插入散佈圖。
開啟“選擇資料”對話框並輸入
='Sheet1'!MyRange1
Excel 崩潰...
該問題在 Windows XP 和 Windows 7(帶有 Excel 2010)上都會出現,並且每次都會重複。
我也嘗試過:
定義 x 和 y 資料的單獨範圍並使用「編輯系列」對話方塊。輸入 X 值欄位後
='Sheet1'!MyXRange
,Excel 將停止接受鍵盤和滑鼠輸入,但退出對話方塊的 Escape 鍵除外。如果我回到對話框,它就會崩潰。將命名範圍的範圍限定為工作簿而非工作表。這實際上確實阻止了崩潰,但根據我是否鍵入
=MyRange1
或,我在“選擇資料”對話框中收到錯誤='Sheet1'!MyRange1
:
這是一個已知問題,還是有地方可以報告它?我這裡沒有 Excel 2007 或 2003 來檢查問題是否與 2010 年無關。
更新:我想我已經弄清楚了(我發布了一個答案,現在已刪除)。我將儲存格 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 值)。
答案2
當使用 INDIRECT 定義範圍時,圖表通常不會正確使用範圍,甚至通常不接受這些命名範圍。有更好(更穩健)的方法來定義動態範圍,例如使用 INDEX 或 OFFSET。
即使圖表可以識別該名稱,它也會轉換為「選擇資料來源」對話方塊的「圖表資料範圍」方塊中的儲存格位址。名稱僅保留在 X、Y 和每個單獨系列的系列名稱範圍內。
如果在儲存格 D1 中使用工作表名稱作為範圍前綴?圖表需要完全限定的範圍,因此如果儲存格 D1 包含
Sheet1!$A$1:$B$5
您可以在「選擇資料來源」對話方塊的「圖表資料範圍」方塊中使用您定義的名稱。請注意,對於第 2 點,當您按一下「確定」時,Excel 會將此範圍轉換為其儲存格位址。
答案3
這是我創建動態圖表的方法。
根據您的資料建立一個表格。
突出顯示表格
轉到插入選項卡並選擇所需的圖表類型。
當您將資料新增至表格時,它也會更新到圖表中。