使用Excel欄位當做外部資料的查詢條件

先前嘗試出來的由Excel 直接讀取 Oracle DB 的資料, 都是把查詢的結果直接寫在 SQL 指令內, 在做簡易的 DashBoard 是可以很快的取得所需要的資料, 但是在彈性上會有所限制.

首先還是要先建立一個外部資料來源, 請參考先前一次的說明文件, 我利用 select * from All_tables 來說明其使用方式.

在填寫好 SQL 指令後, 在 檢視 -> 準則請勾選, 之後再準則欄位填入條件的欄位名稱, 值: 的這個部分填入 =[Input Owner], [] 的部份就是讓你輸入變數的地方.

è¨å®šæ¢ä»¶
設定條件

做到以上的步驟當然可以讓你在 Microsoft Query 編輯時可以自帶條件, 然後存檔回 Excel (不存檔也可以啦), 這樣你每次打開都會呈現最後一次的查詢結果, 不過這還不是我們需要的…

不要輸入任何條件後, 回 Excel 之後就可以看到系統會主動問你 Input Owner 的來源, 就可以選擇該查詢條件要抓取的欄位, 先設定成 A1.

選擇來源欄位
選擇來源欄位
指定為A1
指定為A1

這樣 Excel 就會自動的把 A1 的條件帶到剛剛設定的 Query 內.
不輸入任何數值則不回傳任何資料, 因為條件不符

條件空白, 沒有資料傳回
條件空白, 沒有資料傳回

輸入 SYS 後就會自動帶出所有 Owner = ‘SYS’的Table Name

選擇 Owner = 'SYS'
選擇 Owner =

當然如果你的參數需要下到區間的話, 當然也可以填寫兩個以上的準則來處理, 這樣就可以讓你的 Excel 表格上可以很有彈性來顯示必要的資料.

另外有一種方式可以先把所有的資料在 Sheet2 (或其他的工作表)全部撈取出來, 再用 Vlookup 的指令來對照把需要的資料再Sheet1呈現出來.