[備忘] 創建 Excel 動態圖表的步驟

何謂動態圖表 (Dynamic Chart)?

亦即所接收的數據是會持續成長的。例如每分鐘 (或每30秒, etc...)接收即時的台灣加權成交價/量 數據。

創建動態圖表的重點:
  1. 利用「名稱管理員 (Name Manager)」創建具名 (named)可擷取動態資料範圍 (range)的公式 (formula)。
  2. 新增圖表,指定類型與相關屬性,並指定資料來源 (Data Sources)。
一、利用名稱管理員創建具名的公式
  1. (Option) 下載並安裝更好用免費的 NameManager Add-in (原來 Excel 內建的難用)。
     o Name Manager: Range names made easy

    Excel 2010 安裝 3rd party Name Manager

  2. Excel (2010)選單,[公式] → [Name Manager] 啟動。
  3. 測試資料欄位:

    Excel 盤中接收台指期即時數據

  4. Add a Name:VertValue,取得從第一行 (時間欄位)有含資料列的總列數 (row number),公式如下:
     > VertValue = OFFSET(即時資料!$A$2,1,0,COUNT(即時資料!$A:$A),1)
  5. Add a Name:TxfPrice (台指期成交價),取得含台指期成交價欄位的所有資料列。
     > TxtPrice = OFFSET(VertValue,0,2)
  6. Add a Name:TxfBidSpread (委買賣口數價差),取得含台指期委買賣口數價差欄位的所有資料列。
     > TxfBidSpread = OFFSET(VertValue,0,5)
  7. 如何測試輸入的公式是否正確?
    雙點擊 (安裝上述的 Add-in 才有此功能)欲檢查的名稱,並從 Excel 工作表內可看到所圈選資料列的範圍。

    Excel 設定 Name 擷取資料數列

二、新增圖表,指定資料來源
  1. Excel 選單,選擇 [插入] → 圖表區中選擇任一圖形 (後續均可再更改),在此選擇 [折線圖]。
  2. 點選所新增的圖表,在選單中會出現 [圖表工具],點選 [設計] → [選取資料]。 (或於圖表內,滑鼠右鍵點選亦可。)
  3. 在出現的 [選擇資料來源] 對話框中,於左側 [圖例數目 (數列)] 新增欲在 Y (垂直)軸顯示的數列 (SERIES):
     > 數列名稱:台指期價格  數列值: =即時資料!TxtPrice
     > 數列名稱:委買賣口數差  數列值: =即時資料!TxtPrice
    PS. 其中,"即時資料" 為工作表 (Worksheet)名稱,一般預設為 Sheet1, Sheet2, ...,可更改名稱。
  4. 在右側的 [水平(類別)坐標軸標籤],亦即 X (水平)軸,對剛新增的每一個數列,編輯標籤值範圍:
     > = 即時資料!Vertvalues
    PS. 兩個數列的標籤值均一樣,但仍需個別編輯。
  5. 編輯後的初始圖表與 [選擇資料來源] 所新增的數列圖例如下:

    Excel 數列(SERIES)設定

  6. 編輯圖表內容的屬性,包括座標軸與數列等 (雙點擊各圖形元件編輯):
    • 左方的價格坐標軸,修改 最小/最大, 主要/次要 刻度為固定,並給予適合資料顯示的數據範圍。 (例如台指期價格設定為 7000~7200,可包含所記錄的數據。)
    • 下方的時間坐標軸,修改 指定間隔的刻度間距 (如設為 60),使之座標值數據不致繁多緊密;同時可設定數值格式,如設定只顯示至分 (hh:mm)。
    • 點選圖表內 [圖例項目] → [委買賣口數差],也就是準備編輯 [委買賣口數差] 數列的屬性。
       o 右鍵選擇 [資料數列格式],出現對話框,主要的設定要更改該數列資料的繪製於 [副坐標軸]。
       o 右鍵選擇 [變更數列圖表類型],出現對話框,在此選擇設定為直條圖。
    • 可針對各數列更改顯示顏色。

    Excel 圖表屬性設定

設定完成後的圖表如下。

Excel 台指期委買賣口數價差圖

後續待克服問題:

  • 利用 VBA 程式撰寫可於動態期間更改圖表屬性,例如可依據盤中最高/最低價,設定台指期價格上下的數值範圍。
  • 可依據數列的正負值,而顯示不同的顏色。