hi,大家好!

今天,我們接着來講新式圖表!

在工業控制、質量管理(QC)及 ERP 系統開發中,帕累託圖(Pareto Chart)是必不可少的分析工具。

雖然 Excel 製作帕累託圖很方便,但在 Access 開發的業務系統中,我們需要圖表能動態響應數據庫的變化(如按日期篩選、按產線過濾),而無需人工干預。

本文將從SQL 數據處理和圖表控件配置兩個核心維度,詳細拆解如何在 Access 中實現動態帕累託圖。

什麼是帕累託圖?

帕累託圖(Pareto Chart),又叫排列圖或主次圖,是一種將柱狀圖和折線圖結合在一起的統計圖表。

它是質量管理(QC)七大手法之一,核心目的是為了“抓主要矛盾”

帕累託圖基於著名的“二八法則”(80/20 Rule):80% 的結果通常源於 20% 的原因。

它由兩部分組成:

柱狀圖:按頻率降序排列,展示每個問題的大小。

折線圖:展示累計百分比,幫助你找到那“關鍵的少數”。

今天我將從SQL 數據處理和圖表控件配置兩個核心維度,詳細拆解如何在 Access 中實現動態帕累託圖。

01、數據源準備

假設我們有一張缺陷記錄表,具體字段如下圖,表名我們就保存為帕累託圖。自己在表中適當的放入一些數據。

Access中帕累託圖的完整技術實現_#access

Access中帕累託圖的完整技術實現_#access_02

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;

運行結果:

Access中帕累託圖的完整技術實現_#access_03

注意:這個查詢就是模擬了帕累託圖的計算。這個數據源就可以放到老式的圖表中了,但這裏我們是用新式圖表,不需要這個查詢,我們接着往下。

03、新建圖表控件

還是一樣,我創建一個新的窗體,在窗體上放置一下新的圖表控件。

Access中帕累託圖的完整技術實現_#數據庫_04

Access中帕累託圖的完整技術實現_#服務器_05

04、添加數據源

到這裏我們就可以來添加數據源了,具體如下圖:

Access中帕累託圖的完整技術實現_#access_06

注:我們這裏的數據源用的是第一個查詢,不要添加錯了。

05、運行

最後,我們運行看一下效果。

Access中帕累託圖的完整技術實現_#access開發_07

OK,到這步你就完成了一個完美的帕累託圖。

在 Access 中開發帕累託圖,本質上是 SQL 數據處理能力 與 可視化能力 的結合。

喜歡這篇文章嗎?歡迎點贊、、轉發,讓更多 Access 愛好者看到!