1. 程式人生 > >在Excel中使用SQL語句查詢和篩選

在Excel中使用SQL語句查詢和篩選

本文轉自:http://blog.sina.com.cn/s/blog_5fc375650102e1g5.html

今天在微博上看到@資料分析精選 分享的一篇文章,是關於《在Excel中使用SQL語句實現精確查詢》,覺得非常受用,分享給大家。

微博上有人回覆評論說直接用vlookup、或者匯入資料庫進行查詢處理就好了,豈不是更高效、更靈活;其實給人的第一直觀感覺是這樣子的,但是我們多想一步,這篇文章的應用場景、使用前提條件是什麼?我想到的有以下幾個方面:①資料量不是很大的時候;②資料結構匯入資料庫不是很合適、或要轉換,反而顯得麻煩;③使用Vlookup比較多的同學,相信明白匹配不是那麼精確的,而且會返回“#N/A錯誤值”,另外vlookup每次返回的是一列值;④在Excel環境裡面,可以很好的和表格、圖表進行結合,使用資料重新整理功能一勞永逸的完成了常規圖表的自作。在我想到的這幾個前提環境下,相信使用這種方式會比較高效。另外一點,這篇文章提到的這個功能點和技巧告訴大家一個資訊,其實在Excel裡面也是可以進行資料查詢和資料庫查詢的(在這個功能區下還有資料庫查詢哦,自己去研究)。

言歸正傳,整理自原文以例子的方式來分享下這個功能模組的使用。

溫馨提示:據瞭解Excel2007及以上版本才有這個功能,2003版本的要麼路過學習一下、要麼去升級下自己的版本。

有如下的2張表,表1裡面包含姓名、時間、培訓內容欄位的資料,表2包括姓名、職務、年薪欄位的資料,我們可以看到2張表都有姓名欄位。

表1

在Excel中中使用SQL語句實現精確查詢

表2 現在想統計表2中名單上的人在表1中的培訓記錄。人肉實現或者VLOOKUP的方式當然這個簡單的案例可以實現,但是要學會舉一反三,學習方然是以簡單的例子給你講解(還糾結的回到文章開頭去想前提條件和你能想到能運用的場景)。這裡給大家介紹在Excel中中使用簡單的SQL語句的方法來實現對不同表格間資料的整合和篩選


在Excel中中使用SQL語句實現精確查詢
 

首先,也是最重要的一部是為這兩個表命名,方法是選中表格後單擊右鍵選擇“定義名稱”,如下所示

在Excel中中使用SQL語句實現精確查詢

單擊後,出現命名對話方塊

在Excel中中使用SQL語句實現精確查詢

這裡將表1和表2分別命名為表1和表2。

然後選擇上方的“資料”選項卡,選擇“自其他來源”下的“來自Microsoft Query”選項

在Excel中中使用SQL語句實現精確查詢

在彈出的對話方塊中選擇Excel Files *那一項,並且把對話方塊下面的“使用”查詢嚮導“建立/編輯查詢”勾掉,如下圖所示

在Excel中中使用SQL語句實現精確查詢
然後點選“確定”,便出現“選擇工作簿”的對話方塊,這裡選擇包含表1和表2的工作表Sample.xlsx

在Excel中中使用SQL語句實現精確查詢
點選確定後之後彈出新增表的對話方塊,圖產品如下所示這裡要將表1表2和都新增一遍,新增完成後,查詢器應當是如下圖所示的樣子


在Excel中中使用SQL語句實現精確查詢

在Excel中中使用SQL語句實現精確查詢
此時,單擊圖10中輸入SQL語句的按鈕,彈出輸入SQL語句的對話方塊,如下圖所示上圖中的程式碼是這樣的,偷懶的同學可以直接CTRL + C / CTRL + V:SELECT Table1 。姓名,表1.時間,表1.培訓內容,表2. 姓名表1,表2 WHERE表1。姓名=表2。姓名
在Excel中中使用SQL語句實現精確查詢


 

 

其基本含義就是將表1中和表2中姓名相符的記錄從表1中篩選出來。選擇語句是SQL語言中最基礎也是最重要的語句之一,加上WHERE語句後的限制條件,可以實現大多數的資料查詢和篩選工作,其語法也不困難,稍微學習一下就會了。輸入完程式碼,單擊確定,就可以看到篩選出來的資料表了,如下圖所示

在Excel中中使用SQL語句實現精確查詢
接下來的工作就是將篩選出來的資料表再返回至Excel工作表當中,選擇選單中的“檔案” - “將資料返回Microsoft Excel ”,如下圖所示

在Excel中中使用SQL語句實現精確查詢

接下來的步驟該幹嘛就不羅嗦了。

至此,該教程就講解完成了。在Excel中中使用SQL語句可以實現更靈活,準確,高效的資料篩選和匹配,彙總,計算等,文章提到的例子只是最簡單的案例,大家可以去結合自己的工作場景玩出更多花樣,相信會有所收穫的。