{eval=Array;=+count(Array);}
對于經常使用Excel的人來說,在Excel中使用SQL能高效處理你的數據,但據我所知Excel中的SQL語法與MySQL數據的語法還有點不一樣。現在我就來實例說明如何用SQL語句對多個工作簿進行匯總。假如我們要匯總如下三個工作簿
1. 學生信息表
2. 學生成績表
3. 學生興趣表
將這三個工作簿按相同學號進行合并,大致分如下幾步:
1. 加載數據
在Excel中,依次點擊:數據->自其它來源->來自Microsoft Query->Excel Files*
然后再找到你Excel表格的存放目錄,如下圖
點擊下面你要加載的Excel數據表,進入下面頁面
將上圖可用的三張表都加入到右邊查詢結果中的列,加入完成后點擊下一步,數據就加載完成了。
2. 編寫SQL代碼并執行
接下來點擊上面的SQL按鈕開始寫SQL合并代碼。單純的合并代碼如下
SELECT
tm.*,
tn.興趣愛好 AS 興趣愛好
FROM(
SELECT
ta.學號 AS 學號,
ta.姓名 AS 姓名,
ta.年齡 AS 年齡,
ta.性別 AS 性別,
ta.身高 AS 身高,
ta.出生地 AS 出生地,
tb.語文成績 AS 語文成績,
tb.數學成績 AS 數學成績
FROM(
SELECT
tt.學號 AS 學號,
tt.姓名 AS 姓名,
tt.年齡 AS 年齡,
tt.性別 AS 性別,
tt.身高 AS 身高,
tt.出生地 AS 出生地
FROM [學生基本信息表$] tt
)ta
INNER JOIN(
SELECT
tt.學號 AS 學號,
tt.語文成績 AS 語文成績,
tt.數學成績 AS 數學成績
FROM [學生成績表$] tt
)tb
ON ta.學號=tb.學號
)tm
INNER JOIN(
SELECT
tt.學號 AS 學號,
tt.興趣愛好 AS 興趣愛好
FROM [學生興趣表$] tt
)tn
ON tm.學號=tn.學號
將代碼寫好后復制放入文本框中,點擊確定按鈕,就開始執行SQL語句。結果如下
這樣就完成了三個工作簿的數據合并,接下來將數據返回Excel表。
3. 返回數據到Excel表
點擊左上角的文件->將數據返回Microsoft Excel,彈出如下頁面
選擇數據的存放位置為新工作表,然后點擊確定即可,最終得到如下數據表
這樣就完成了三個工作簿的數據合并。
Tips:
1. 由于Excel中執行SQL語句時沒有比較詳細的報錯信息,如果SQL代碼語法有錯誤有可能執行會報錯,這個問題可以上網查詢或者直接在評論區問我。
2. 在Excel SQL中常用到的合并操作有INNER JOIN、LEFT JOIN、RIGHT JOIN、UNION、UNION ALL等,但不支持FULL JOIN。更復雜的需求都有一定的處理技巧。
select * from [工作簿路徑1].[工作表名1] union all
select * from [工作簿路徑2].[工作表名2] union all
select * from [工作簿路徑3].[工作表名3]
個人比較推薦vba 引用ADO的方法,可以用變量代替工作簿路徑不用一個個寫。
展開說太麻煩,就這樣吧。
0
回答0
回答0
回答0
回答2
回答0
回答0
回答0
回答0
回答0
回答