總結
本系列是數據可視化基礎與應用的第02篇,主要介紹基于powerbi實現一個連鎖糕點店數據集的儀表盤制作。
數據集描述
有一個數據集,包含四張工作簿,每個工作簿是一張表,其中可以銷售表可以劃分為事實表,產品表,日期表和門店表為維度表。
工作簿名稱、字段含義和數據集的對應關系如下圖:
數據集下載
設計思路
本案例整體設計思路如下:
1.拿到數據集先對案例背景進行介紹
2.再完成數據獲取和整理階段
3.然后對多張表進行數據建模,同時為新建列和度量值。新建列和度量值用power query也可以完成,但我們一般基于power pivot在數據建模階段完成。
4.進行可視化。
案例背景
某連鎖糕點是一個全國連鎖糕點店,在全國共有22家店鋪。主要制作并銷售3類產品:
面包、餅干和飲料。
面包包括吐司面包、牛角面包和全麥面包三種,
餅干包括曲奇餅干和蘇打餅干兩種;
其代銷的飲料包括可樂和果汁兩種。
案例數據
各店的POS信息系統中提取并整理了門店數據、日期數據、產品數據和銷售數據(2019年和2020年)。
案例目標
某連鎖糕點連鎖店希望利用Power BI的可視化分析功能,通過各店相關數據的橫向縱向對比分析,找到存在的問題,發現新的銷售增長點。
(參考文獻中提到:本案例為純模擬案例,非真實案例)
數據獲取與整理
數據獲取
打開Power BI
選擇文件
選擇打開
選擇加載,如果選擇轉換數據,會跳轉到power query中。
數據整理
選擇主頁–轉換數據–轉換數據,:
進入到Power BI的Power Query頁面。
目標1:日期類型轉為文本類型
Power Query中整理數據日期表中“年”和“月”的字段類型需將其調整為文本型,與原表類型一致。日期類型調整為日期類型
選擇日期表,查看如下:
需要說明的是,原始數據的年和月與這里的不同,excel中的數據如下:
Power BI會根據字段類型,自動補全,比如把2019年補充為2019年1月1日,把1月補充為2023年1月1日。這時需要我們把年和月的字段修改為文本。
選擇替換當前類型
即可把年的日期類型替換為文本類型
再修改月的字段為文本類型,如下
目標2:添加月排序依據
“月”字段默認是按文本排序的,順序不正確的本案例需將“月”字段復制一份,然后將數據中的“月”字拆分掉,只保留整數部分作為月份排序的依據.
選擇月–選擇添加列–選擇重復列
生成如下
選擇月列–選擇轉換–選擇拆分列–選擇字符數。
輸入字符1,選擇盡可能靠右,選擇確定
拆分如下
刪除月-復制.2 列 把 月-復制.1的名字修改為月排序依據,目前日期表的字段如下
目標3: 刪除空行和錯誤
選擇日期表–主頁–刪除行–再依次選擇刪除空行和刪除錯誤
刪除后如下:
應用以上的數據整理
數據建模
目標1: 完成事實和維度表的關聯
本案例數據建模是建立維度表(產品表、日期表、門店表)和事實表(銷售表)之間的關聯;產品表通過“產品ID”與銷售表自動關聯;門店表通過“店鋪ID” 與銷售表自動關聯;日期表通過“日期” 與銷售表中的“訂單日期”對應;
選擇日期表–選擇主頁–選擇管理關系–選擇新建–選擇日期表選擇日期字段–選擇銷售表選擇訂單日期字段–選擇確定。
返回如下
點擊關閉,關聯完成
目標2:新建列
為銷售表新建列(字段),單價和金額;
DAX(Data Analysis Expression,數據分析表達式)
單價=RELATED(‘產品表’[單價])
金額=‘銷售表’[數量]*‘銷售表’[單價]
新建單價列
新建金額列
目標3: 新建度量值
度量值:Power BI數據建模的靈魂;
數據分析的指標;
度量值不改變源數據,也不改變數據模型;
4個度量值:
銷售金額=SUM(‘銷售表’[金額])
銷售數量=SUM(‘銷售表’[數量])
營業店鋪數量= DISTINCTCOUNT(‘銷售表’[店鋪ID])
單店平均銷售額=[銷售金額]/[營業店鋪數量]
在這里插入圖片描述
新建度量值和新建列的方式基本一樣,新建銷售金額度量值
按照
銷售金額=SUM(‘銷售表’[金額])
銷售數量=SUM(‘銷售表’[數量])
營業店鋪數量= DISTINCTCOUNT(‘銷售表’[店鋪ID])
單店平均銷售額=[銷售金額]/[營業店鋪數量]
創建所有度量值,如下。
數據可視化
目標1:插入圖像,文本框,形狀等
選擇報表視圖–選擇插入–然后選擇文本框,形狀和圖像。修改形狀的演示,如下。
目標2:卡片圖 突出顯示可視化分析的關鍵數據;
本案例:銷售金額、銷售數量、營業店鋪數量、單店平均銷售額;
添加銷售金額卡片圖
把銷售金額拖入數據,然后點擊卡片圖,修改其標注中的文字和卡中的邊框,位置如下:
銷售金額卡片圖最終輸出如下:
接下來創建銷售數量、營業店鋪數量、單店平均銷售額卡片圖,并把卡片圖合在一起,如下:
目標3:插入環形圖
環形圖就是中間挖空的餅圖,它是依靠環形的長度來表達比例的大小;
本案例:在環形圖中顯示不同產品的銷售金額占比情況;
目標4:插入條形圖
條形圖可利用條狀的長度反映數據的差異,適用于多個項目的分類排名比較;
本案例:條形圖中顯示不同產品分類下銷售額,并按銷售額大小進行排序;
目標5:插入折線圖和簇狀柱形圖
折線圖可以顯示隨時間變化的連續數據,非常適用于顯示在相同時間間隔下的數據變化趨勢;柱形圖可以利用柱形的高度反映數據差異;
本案例:折線和簇狀柱形圖中顯示不同月份的銷售金額和銷售數量
這時月份的排序不好,我們按照月排序字段進行排序
然后再刷新下折線圖和簇狀柱形圖就可以完成排序
目標6:插入氣泡圖
氣泡圖是一種特殊的散點圖,主要通過橫縱坐標值和氣泡大小來展現數據的分布情況;
氣泡圖表現數據的維度多、圖形美觀、欣賞性強;
本案例:在氣泡圖中顯示不同月份的銷售金額和銷售數量的動態變化情況。
目標7:插入切片器
切片器是畫布中的視覺篩選器,是報表中的一種可視化圖形元素;
切片器本身不為了展示數據,而是作為展示數據時的各種維度選擇本案例:
設置“年度”和“店鋪名稱”切片器;
這里的店鋪名稱修改為了磁片顯示
報表美化
排版布局;
設置格式;
主題風格;