一、鐵匠留的一個作業要求
- 難度1,製作1個帕累託圖
- 難度2:
在只填入a列名稱和b列對應數據的前提下,不添加任何輔助列(c:d列)
的基礎上製作帕累託圖
要求自動降序排序
支持數據源增減 - 注意2種做法均請添加28線
二、完成效果
三、開始製作
1,數據結構製作
分析帕累託圖需要的系列
1,要柱形圖結構
2,要數值累加折線圖結構
3,要80%的虛線結果
4,要求智能變化範圍
因爲要動態結果,圖表範圍必須用公式完成,需要做自定義名稱
- 項目
自定義名稱 | 公式 |
---|---|
xiang | =OFFSET(Sheet1!$B$3,,,MAX(COUNTA(Sheet1!$B:$B),COUNTA(Sheet1!$C:$C))-1,1) |
zhi | =OFFSET(Sheet1!$C$3,,,MAX(COUNTA(Sheet1!$C:$C),COUNTA(Sheet1!$B:$B))-1,1) |
zhi2 | =SUBTOTAL(9,INDIRECT("sheet1!c3:c"&ROW(zhi)))/SUM(zhi) |
bs | =IF(zhi>0,MAX(zhi)*0.8) |
- 自定義名稱解釋
- xiang,是項目範圍
- zhi,是值得範圍
- zhi2,是累積百分比範圍
- bs,是80%那個虛線的範圍
2,圖表製作
- 插入空白表,添加數據
- 添加範圍
- 調整格式
- VBA代碼部分,寫入當前表模塊
Private Sub Worksheet_Change(ByVal Target As Range)
'容錯,防止使用者手賤,大面積更改報錯
If Target.Rows.Count > 1 Then Exit Sub
If Target.Columns.Count > 1 Then Exit Sub
'不是C列的變化就不執行
If Target.Column <> 3 Then Exit Sub
'對C列降序排列
Sheet1.UsedRange.Sort Range("c3"), xlDescending, , , , , , xlYes
End Sub
- 最後在美化下,最後結果
四、總結
- 智能圖表,基本都要利用公式重構數據範圍
- 這個題目,要學會圖表的組成結構