在工作中我們經常遇到這樣的情況:要在一張數據很多的明細表中查找我們需要的的內容並提取出來到一張新的表,如何能快速完成呢?當然,可以通過VBA或者函數實現,但是這兩中方法都比較麻煩,VBA沒有一定的知識基礎是沒法寫出代碼;而函數則需要嵌套,條件一旦多了更是複雜。辣麼如何根據條件快捷的提取數據內容呢?下面為大家解答。
工具/原料
2007及以上版本excel
方法/步驟
首先聲明下本方法主要通過 數據鏈接 加上SQL中的SELECT和WHERE語句實現的,當然你不需要知道具體的語法意義,只要會寫這兩個單詞以及記住固定的格式就可以提取需要的數據了。下面進入主題
第一步當然是打開需要查詢的工作表,為了方便大家理解,特別新創建了一張表格(如圖一),可以看到裡面包含了比較多的信息。
然後點擊 <數據> 選項卡下的 <現有連接> (如圖二)在彈出的 <現有連接> 對話框中選擇 <瀏覽更多> (如圖三), 瀏覽更多> 現有連接> 現有連接> 數據>
然後在彈出的 <選擇數據源> 對話框中找到需要提取數據的那張表所在工作簿的位置並選中,接著點打開(如圖四),在彈出的 <選擇表格> 對話框中,同樣選擇數據所在的工作表,並勾選 <數據首行包含列標題> 然後點確定。(如圖五) 數據首行包含列標題> 選擇表格> 選擇數據源>
出現(如圖六)的 <導入數據> 對話框,這裡需要說明下:因為我們是提取明細數據所以最好是選擇默認的也就是 區域1所表示表(如果對提取的數據還要進行分析統計的話建議選擇數據透視表),關於數據的放置位置可以根據自己的需要選擇,這裡以現有的工作表為例。(注:現有的工作表的放置位置可以通過鼠標點選)。設置好這些後就進入最重要的語句輸入了,點擊屬性按鈕 (區域3) 導入數據>
在彈出的連接屬性中點擊 <定義> 選項卡,(如圖七 八)在命令文本對話框中輸入要提取的條件 定義>
關於條件的內容下面會舉幾個例子以供參考
這裡首先說明下查詢語句的格式如下:
select * from [要提取數據的工作表名稱$] where 條件
注:1:由於我們提取的都是整行的數據所以這裡直接用*代替所有
2:工作表的名稱後面必須要加$
例一:如何提取單價大於25的記錄
命令文本中輸入
select * from [1$] where 單價>25
點擊確定後回到圖六對話框再點擊確定,彈出圖九,需要的數據一下就提取到了,是不是很方便
例二:如何提取區域為AA的記錄
在命令文本中輸入
select * from [1$] where 區域="AA"
點擊確定 結果如圖十
注:字母,中文需要加""(英文狀態下的雙引號)
例三:如何提取區域為CC且(或)數量大於25且(或)單價大於30的數據
在命令文本中輸入
select * from [1$] where 區域="CC" and 數量>25 and 單價>30
點擊確定結果如圖十一
注:多個條件且的關係用and連接
如何提取區域為CC或數量大於25或單價大於30的數據
在命令文本中輸入
select * from [1$] where 區域="CC" or 數量>25 or 單價>30
注:或的關係用or連接結果如圖十二
特別注意:
一、語句各個詞之間一定要有空格連接
二、如果語句都是對的但是系統提示錯誤,要關閉文件並重新打開按前面的步驟重新操作一遍即可,有可能是系統本身的原因導致的。如圖
三、查詢好後如果需要再次查詢需要先關閉文件再打開,不然很可能會出現上面二的錯誤。
注意事項
本經驗為個人原創,如有不足請多多指教