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