hi,大家好!
今天,我們接着來講新式圖表!
在工業控制、質量管理(QC)及 ERP 系統開發中,帕累託圖(Pareto Chart)是必不可少的分析工具。雖然 Excel 製作帕累託圖很方便,但在 Access 開發的業務系統中,我們需要圖表能動態響應數據庫的變化(如按日期篩選、按產線過濾),而無需人工干預。
本文將從SQL 數據處理和圖表控件配置兩個核心維度,詳細拆解如何在 Access 中實現動態帕累託圖。什麼是帕累託圖?
帕累託圖(Pareto Chart),又叫排列圖或主次圖,是一種將柱狀圖和折線圖結合在一起的統計圖表。它是質量管理(QC)七大手法之一,核心目的是為了“抓主要矛盾”。
帕累託圖基於著名的“二八法則”(80/20 Rule):80% 的結果通常源於 20% 的原因。它由兩部分組成:柱狀圖:按頻率降序排列,展示每個問題的大小。折線圖:展示累計百分比,幫助你找到那“關鍵的少數”。
今天我將從SQL 數據處理和圖表控件配置兩個核心維度,詳細拆解如何在 Access 中實現動態帕累託圖。
01、數據源準備
假設我們有一張缺陷記錄表,具體字段如下圖,表名我們就保存為帕累託圖。自己在表中適當的放入一些數據。
02、核心難點:構建查詢
Access 的 SQL 語法不支持窗口函數(如 SUM() OVER()),因此計算“累計值”通常有兩種方案:子查詢或 DSum 函數。為了在查詢設計器中更易維護,我們推薦分步查詢法。
第一步:基礎聚合先將原始數據按缺陷類型進行彙總,並按數量降序排列。
新建一個查詢,查詢名稱為:帕累託圖總計
SELECT
缺陷,
Sum(次數) AS 總次數
FROM
帕累託圖
GROUP BY
缺陷
ORDER BY
Sum(次數) DESC;
第二步:計算累計佔比
這是最關鍵的一步。我們需要基於
計算三個指標:總數量、累計數量、累計佔比。
新建一個查詢,保存查詢為帕累託圖查詢,SQL 邏輯如下:
-- 1. 計算總數量 (作為分母)
-- 2. 計算累計數量 (Running Sum)
-- 邏輯:計算所有數量大於等於當前行數量的記錄之和
-- 3. 計算累計百分比
SELECT
A.缺陷,
A.總次數,
(
SELECT
Sum(總次數)
FROM
帕累託圖總計
) AS GrandTotal,
DSum ("總次數", "帕累託圖總計", "總次數 >= " & [A].[總次數]) AS RunningSum,
Format([RunningSum] / [GrandTotal], "Percent") AS CumulativePct
FROM
帕累託圖總計 AS A
ORDER BY
A.總次數 DESC;
運行結果:
注意:這個查詢就是模擬了帕累託圖的計算。這個數據源就可以放到老式的圖表中了,但這裏我們是用新式圖表,不需要這個查詢,我們接着往下。
03、新建圖表控件
還是一樣,我創建一個新的窗體,在窗體上放置一下新的圖表控件。
04、添加數據源
到這裏我們就可以來添加數據源了,具體如下圖:
注:我們這裏的數據源用的是第一個查詢,不要添加錯了。
05、運行
最後,我們運行看一下效果。
OK,到這步你就完成了一個完美的帕累託圖。在 Access 中開發帕累託圖,本質上是 SQL 數據處理能力 與 可視化能力 的結合。
喜歡這篇文章嗎?歡迎點贊、在看、轉發,讓更多 Access 愛好者看到!