[本文軟件Excel 2010]

效果圖:

首先我們看一下數據源
1.JPG?
數據源中第二列是對應圖形的名稱。

首先創建圖形,我們可能在網絡中找到各個地圖的矢量圖形。
不過不是每個地圖圖形都適合我們,或許企業劃分非按照行政區劃分。因此可以嘗試自己繪制,如下圖:
5.JPG?
繪制的方法,可以復制過一張地圖。然后通過插入“形狀”來按照自己的需求描。

完成后,我們在“開發工具”選項卡中選擇插入“組合框”。組合框右鍵“設置控件格式”
2.JPG?
當我們選擇這個組合框時,鏈接的單元格中的數值就會隨之改變,我們的數據就以此變化。
控件鏈接的內容:
3.JPG?

此時需要建立圖例和輔助數據來幫助完成圖形色彩的選擇,如圖:
4.JPG?
因為是從小到大排序,且兼顧控件的數據源,因此公式如下:
第一列,選擇的占比

  1. =SMALL(OFFSET($R$79:$R$86,0,$N$72-1,8,1),ROW(1:9))
復制代碼

第二列,圖例的標識名稱

  1. =INDEX($N$79:$N$86,MATCH(M62,OFFSET($R$79:$R$86,0,$N$72-1,8,1),0))
復制代碼

第三列,單元格顏色對應的形狀名稱,此處為拼音,和數據源中的形狀名稱保持一直

  1. =INDEX($O$79:$O$86,MATCH(N62,$N$79:$N$86,0))
復制代碼

以上均為數組公式,需要按Shift+Ctrl+Enter執行。為了能使圖例顯示清晰,選中第三列右鍵“設置單元格格式”,“自定義”,類型中輸入三個分號,即“;;;”。
此操作會使公式形成的內容不可見。如圖
7.JPG?

接著就是定義單元格的顏色名稱,定義的顏色名稱會被引用添加至圖形的填充顏色。
“公式”選項卡“名稱管理器”新建各個單元格的名稱,如圖:
11.JPG?

隨后按Alt+F11打開VBE編輯器,輸入圖形填充的VBA代碼:

  1. Sub 圖表填色()
  2. On Error Resume Next
  3. For i = 62 To 69
  4. ? ? ActiveSheet.Shapes(Range("O" & i).Value).Select
  5. ? ? Selection.ShapeRange.Fill.ForeColor.RGB = Range(Range("P" & i).Value).Interior.Color
  6. ? ? Next i
  7. End Sub
復制代碼

然后右鍵控件“指定宏”
8.jpg?
選擇剛才創建的宏名稱。
9.jpg?

此時如果我們選擇控件“組合框”的內容,將會得到不一樣的圖表類型。不過為了得到更好的顯示效果,我們可以采用照相機的方式來組合。
首先將照相機找到,并添加到快速訪問工具欄。位置是“開始”,“選項”,如下圖:
6.jpg?

選擇我們已經完成的圖形所在的單元格,然后點擊“照相機”。接著在需要的位置拖動鼠標,即可放置圖片。此時再選擇圖例,照相機,拖動鼠標,完成圖例放置。
這樣就完成了一個跟隨控件變化而變化的圖表了。

?

?源文件可查看下面的附件。