前段時間,接到一家服裝企業的Excel培訓需求。上課前,客戶把他們工作中經常用的服裝銷售的明細表格發給了我,說是他們員工每天要花至少一個小時來完成數據的統計和分析操作。
收到了客戶發過來的表格之后,我不由得發出一句感嘆:“源數據表格設計得如此不規范,難怪每天要花一個小時來統計不同服裝的數量和金額。”
我們可以看到這個表格主要存在有兩個問題:
1、頂部的第一行,也就是表格的標題行,添加了一行列序號,這個序號其實意義不大,上方的ABCD列標簽本身就是起著列序號的作用。規范的表格結構的第一行應該是現在我們看到的第二行的列標題。
2、所有服裝的銷售數據都存在復合屬性的數據,既有銷售的數量,又有產品的總價。數量還是中文漢字,Excel再厲害,也不能對這些中文漢字求和啊。
那要優化這個表格結構,首先要使用替換功能,使用通配符*號來代表任何一個或多個字符,比如“*兩*”,意味著包含兩字,可以查找到訂購兩套的文字,將其替換為數字2。
這是將標題行至于第一行,并完成了所有數量轉為數字的表格完成效果。
另外再建一張表,將產品名稱橫向存儲,底部的數量就可以直接用SUM求和函數對明細表中的相應列求和,最終統計出數量和金額的合計。
如果想效率再高一些,最理想的表格結構,應該是把明細表格設計成一維表結構,而不是現在看到的二維表表結構。
什么是二維表表結構呢?就是既有行分類字段,又有列分類字段。就好比這張明細表格中我們看到的行分類字段是每一行的客戶名稱,列分類字段是每一列的產品名稱,行列交叉的是銷售數量。
知道了什么是二維表結構,那什么是一維表結構呢?一維表結構就是只有行分類字段,沒有列的分類字段。也就是要把明細表的表結構設計成如下圖所示的效果:
那如果我們的表格原本就是二維表的結構,有什么快捷的方法來轉換成一維表結構嗎?這里可以利用Power Query的逆透視功能輕松完成。
將光標放在數據表的任何一個單元格,點擊“數據”選項卡中的“來自表格/區域”,將數據加載到Power Query中。
在Power Query中,選擇前兩列,點擊“轉換”選項卡中的“逆透視列”中的“逆透視其他列”。
之后刪除第一列,修改標題名稱,就得到了下圖的效果:
我們再將按下圖所示的另一張產品表加載到Power Query中。
選擇“主頁”中的“合并查詢-將查詢合并為新查詢”。
分別選擇明細表中的“產品”列和產品表中的“產品名稱”列,聯接種類是“左外部”。
最后再添加一個計算的金額列,就可以得到下圖所示的表格:
我們將數據重新加載回到Excel中,之后就可以用數據透視表,輕松統計數據。
如果習慣了之前的二維表的明細表存儲方式,就可以借助Power Query來做一個轉換的一維表。用Power Query的好處在于,明細表的數據更新了,Power Query生成的所有表格都可以自動更新,與之關聯的數據透視表也會更新。這樣既方便閱讀,也易于統計,以后只需要在明細表中添加新數據,在數據透視表中點擊“刷新”功能,1秒輕松計算出最新的數據。
每天1個小時的工作變成1秒輕松搞定,是不是很厲害呢。所以想要提高Excel的效率,就要從規范數據源表格開始!