我們經常在實際工作中要對多個工作表進行彙總,使用函數太麻煩,要用VBA你可能對代碼不熟悉而無從下手。實際天無絕人之路,Excel 數據透視表加簡單的SQL代碼就可以解決問題,不妨我們試試。先看圖片:
有A、B、C三張表,而且表的字段最後一個都不一樣,大家可以詳細看看到顔色的單元格,現在要求對三張表彙總。彙總結果如下:
1、對三張表彙總,結果如下圖。
2.、按文理科組彙總,并要求排序。如下圖所示
你如果剛看到這三張表要做成所需結果,肯定會大吃一驚,怎麼可能呢?我不會怎麼辦?别擔心,我教你用簡單的SQL現彙總,然後再按數據透視表要求得到結果。
SQL 就叫結構化查詢語言,至于其他的你可以看看我在有關網站的()的帖子吧,這裡不詳細介紹。
三張表彙總的代碼是:
select 文理科,班級,組,座位号,語文,數學,英語,曆史,0 as 政治,0 as 物理 from[A$] union all select 文理科,班級,組,座位号,語文,數學,英語,0,政治,0 from[B$] union all select 文理科,班級,組,座位号,語文,數學,英語,0,0 ,物理 from[C$]
解釋:select 是英語的選擇意思。也就是選擇“文理科,班級,組,座位号,語文,數學,英語,曆史,0 as 政治,0 as 物理”這幾個字段。
0 as 政治 是添加一個以“政治”命名的字段,單元格區域值為0。
from是從的意思,[A$]是Excel所特有的工作表命名形式。
union all 聯合所有的工作表為一個彙總。要想詳細了解union all 請看上面鍊接的相關帖子。注意最後一段代碼取消了union all 。
0 第一個代碼已經有了所有的字段,下面字段可以省略 0 as,寫作0,也可以不省略 0 as ......。
現在我做一個演示,大家看看動畫視頻。
如何對按文理科組彙總,并要求排序呢?這個簡單多了。請看視圖操作步驟:
知道了對多個工作表彙總,那麼多個工作薄彙總也就不難解決了,大家看看存放到E盤這幾個工作的彙總方法。
我們要将車間1、車間2和車間3三個工作薄彙總到彙總工作表裡,方法如下,看視頻動畫:
這個是我們從獲取外部數據-----其他來源-----來自 Microsoft Query 裡獲取工作薄地址後改動代碼:
SELECT * FROM `E:\工作薄\車間1.xls`.[車間1$] union all SELECT * FROM `E:\工作薄\車間2.xls`.[車間2$] union all SELECT * FROM `E:\工作薄\車間3.xls`.[車間3$]
備注: * 星号代表所有工作表字段。
大家還可以彙總成這樣的樣式,看圖:
代碼如下:
SELECT ''車間1'',* FROM `E:\工作薄\車間1.xls`.[車間1$] union all SELECT ''車間2'',* FROM `E:\工作薄\車間2.xls`.[車間2$] union all SELECT ''車間3'',* FROM `E:\工作薄\車間3.xls`.[車間3$]
今天就學習這些,不會的可以提問,祝大家新春快樂,萬事如意,學習進步。
|
有話要說...