sql查詢excel數據
⑴ 如何用sql語句讀出EXCEL是的數據,請大家幫幫忙謝謝了
電腦的環境變數要設置一下吧,在管理工具理有一個數據源,要追加一個Miscrosoft
Access
Driver(*.mdb)的驅動
再看看別人怎麼說的。
⑵ 在SQL SERVER里查詢Excel數據
SELECT * into newtable
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\temp1.xls";User ID=;Password=;Extended properties=Excel 5.0')...[結果$]
⑶ SQL查詢excel數據 帶下拉列表
Excel設置數據有效性實現單元格下拉菜單的3種方法
一、直接輸入:
1.選擇要設置的單元格,譬如A1單元格;
2.選擇菜單欄的「數據」→「有效性」→出現「數據有效性」彈出窗口;
3.在「設置」選項中→「有效性條件」→「允許」中選擇「序列」→右邊的「忽略空值」和「提供下拉菜單」全部打勾→在「來源」下面輸入數據,譬如「1,2,3,4,5,6,7,8,9」(不包括雙引號,分割符號「,」必須為半形模式)→按「確定」就OK了,再次選擇該A1單元格,就出現了下拉菜單。
二、引用同一工作表內的數據:
如果同一工作表的某列就是下拉菜單想要的數據,譬如引用工作表Sheet1的B2:B5,B2:B5分別有以下數據:1、2、3、4,操作如下:
1.選擇要設置的單元格,譬如A1單元格;
2.選擇菜單欄的「數據」→「有效性」→出現「數據有效性」彈出窗口;
3.在「設置」選項中→「有效性條件」→「允許」中選擇「序列」→右邊的「忽略空值」和「提供下拉菜單」全部打勾→在「來源」下面輸入數據「=$B$2:$B$5」,也可以按右邊帶紅色箭頭的直接選擇B2:B5區域→按「確定」就OK了,再次選擇該A1單元格,就出現了下拉菜單。
三、引用不同工作表內的數據(必須用到定義名稱):
如果不同工作表的某列就是下拉菜單想要的數據,譬如工作表Sheet1的A1單元格要引用工作表Sheet2的B2:B5區域,工作表Sheet2的B2:B5分別有以下數據:1、2、3、4,操作如下:
1.定義名稱:菜單欄→「插入」→「名稱」→「定義」→彈出「定義名稱」窗口,在「在當前工作薄中的名稱」下面輸入「DW」(可以自己隨便明明)→「引用位置」下面輸入「=Sheet2!$B$2:$B$5」,也可以按右邊帶紅色箭頭的直接選擇B2:B5區域→按「添加」後再按「確定」完成第一步。
2.選擇菜單欄的「數據」→「有效性」→出現「數據有效性」彈出窗口;
3.在「設置」選項中→「有效性條件」→「允許」中選擇「序列」→右邊的「忽略空值」和「提供下拉菜單」全部打勾→在「來源」下面輸入「=DW」,「DW」就是剛剛定義好的名稱,按「確定」就OK了,再次選擇該A1單元格,就出現了下拉菜單。
----------------------------------------------------------------------
1.
只要你在一列中連續的單元格內輸入文字,
除了數字以外的內容都會顯示在下拉列表中.
快捷鍵是Alt + 方向鍵下鍵.
在輸入數據時,如果想輸入上面已經輸入過的數據,
直接從下拉列表中選擇就可以了.
2.
在EXCEL單元格做下拉列表還有一個更好的方法,因為下拉列表的內容可能有30項甚至於100項以上,如在「數據-有效性-來源」中填寫100項是很做不到的,我記得最多隻可填寫30項。方法是將要在下拉列表中選擇的100項內容填在A1-A100,選擇「插入-名稱-定義」,定義名稱可填下拉內容「一級」,定義的引用位置是A1-A100,確定後將一級下拉內容填入「數據-有效性-來源」中或者在「數據-有效性-來源」中填「=$A$1:$A$100」。
3.
我做的表比較復雜,要實現在一行中輸入數據同時它相關的一些數據都要出來,而且要輸入的數據量很大。
如:A1是一個下拉列表,我選中AA,同時一行的AA 的型號,價格都出現,而且是每行都是這樣,可以實現嗎?和復雜嗎?
設:原數據表在sheet1表,A列為型號,B--H列為相關數據。
新表建在Sheet2表,表格式同SHeet1表。
選中Sheet1表的A列型號的區域(設為A2至A30),定義名稱為 「型號」。
在Sheet2表的A2單元格,數據→有效性,「允許」選「序列」,「來源」中輸入「=型號」(等於應在英文狀態下輸入),確定退出。
在B2單元格輸入公式:
=IF($A2<>0,VLOOKUP($A2,Sheet1!$A$2:$H$30,COLUMN(),0),"")
再將B2單元格橫向拉到H2單元格。
再將A2至H2單元格向下拉若干行。
A列選型號後,後面出現相關數據。
4. 自製Excel下拉菜單快速批量輸入
因工作需要,常常要將企業的單位名稱輸入到Excel表格中,由於要求每次輸入同一個企業的名稱要完全一致,我就利用「數據有效性」製作了一個下拉列表來進行輸入。
但由於有150多個單位名稱,下拉列表太長,選擇起來非常不方便,於是,我對其進行了改進,實現了「分類列表選擇、快速統一輸入」之目的。
使用實例界面:
1、建庫
啟動Excel2000(XP也可),切換到Shift2工作表(其他工作表也可)中,將建築施工企業名稱按其資質等級分別分別輸入不同列的單元格中,建立一個企業名稱資料庫(如圖1)。
[特別提示]如果有其他企業加入,可以隨時將名稱輸入到該列下面的單元格中。
2、命名
在Shift2工作表中,選中A列(一級企業名稱所在列),然後將游標定在「名稱」欄內(位於「編輯欄」左側,如圖2),輸入「一級」,並按「回車」鍵進行確認。
仿照上面的操作,將B、C、D列分別命名為「二級、三級、四級」。
3、建立
切換到Sheet1工作表中,選中需要輸入企業資質等級的列(如C列),執行「數據→有效性」命令,打開「數據有效性」對話框(如圖3)。進入「設置」標簽,單擊「允許」右側的下拉按鈕,選中「序列」選項,在下面接著出現的「來源」方框中,輸入「一級,二級,三級,四級」序列,輸入完成後,確定退出。
[特別提示]在輸入「序列」時,序列中各元素之間請用英文狀態下的逗號隔開。
再選中需要輸入企業名稱的列(如D列),再次打開「數據有效性」對話框,選中「序列」選項後,在「來源」方框中輸入公式:=INDIRECT(C1),確定退出。
4、使用
選中C列任意單元格(如C4),在其右側出現了個下拉按鈕,單擊此按鈕,即可選擇企業的資質等級級別填入相應的單元格中。然後選中該單元格對應的D列單元格(如圖4),同樣在其右側出現了個下拉按鈕,單擊此按鈕,即可從相應資質等級的企業名稱列表中選擇需要的企業名稱填入該單元格中。
怎麼樣?這樣輸入企業名稱(當然,此法不僅僅適用於輸入企業名稱喲),是不是既快速又統一?!
可以用查找函數VLOOKUP或索引函數INDEX實現。如果要用「點擊上一個-下一個」的,可合並使用「數據有效性」。
你沒有具體數據地址,我就給你一些公式參考吧:
1、在Sheet1的A列輸入「甲方,乙方」,B列輸入金額;
2、選Sheet1的A列數據區域(就只有A1、A2吧)——菜單欄——插入——名稱——定義——在當前工作簿中的名稱,隨便輸入一個名稱,如:AAA;引用位置,輸入:=Sheet1!$A:$A(或默認)——確定;
3、選Sheet2的A1——菜單欄——數據——有效性——設置——允許:選「序列」;來源,輸入:=AAA——確定;
4、在Sheet2的B1輸入
=IF(ISERROR(VLOOKUP(A1,Sheet1!A:B,2,0)),"",VLOOKUP(A1,Sheet1!A:B,2,0))回車。
⑷ EXCEL中的SQL語句查詢並分類匯總
為什麼不先查詢出數據再使用分類匯總功能?
想一步到位,用數據透視可以做到。
用SQL聯合查詢也可以做到。
數據透視也是可以有明細的,你可以把序號當一個條件,它就既有明細又有匯總了。
可以啦,你可加3014560這個QQ群來討論。
⑸ 如何用SQL語句查詢Excel數據
如何用SQL語句查詢Excel數據?
Q:如何用SQL語句查詢Excel數據? A:下列語句可在SQL SERVER中查詢Excel工作表中的數據。
2007和2010版本:
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]
復制代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$A1:D100]')
復制代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$]')
復制代碼
2003版本:
SELECT*FROMOpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]
復制代碼
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$]')
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$A1:D100]')
復制代碼
而且,還需要用擁有伺服器sysa
⑹ 如何在Excel中使用SQL語言實現數據查詢
1、選中表格後單擊右鍵選擇「定義名稱」。
2、單擊後,出現命名對話框。
3、這里將表1和表2分別命名為Table1和Table2。
4、選擇上方的「數據」選項卡,選擇「自其他來源」下的「來自Microsoft Query 」選項。
5、在彈出的對話框中選擇Excel Files*那一項,並且把對話框下面的「使用「查詢向導」創建/編輯查詢」勾掉。
6、點擊「確定」,便出現「選擇工作簿」的對話框,這里選擇包含表1和表2的工作表xxx.xlsx。
7、點擊確定後之後彈出添加表的對話框。
8、點擊確定後之後彈出添加表的對話框。
9、輸入SQL語句的按鈕,彈出輸入SQL語句的對話框 輸入SQL,看到篩選出來的數據表。
10、將篩選出來的數據表再返回至Excel工作表當中,選擇菜單中的「文件」——「將數據返回Microsoft Excel」。
⑺ 如何通過SELECT語句查詢出來後,用SQL語句把數據寫入到指定的EXCEL中
給個示例
Sub去重()
Dimcnn,SQL$
Setcnn=CreateObject("adodb.connection")
cnn.Open"Provider=Microsoft.jet.OLEDB.4.0;ExtendedProperties=Excel8.0;DataSource="&ThisWorkbook.FullName
SQL="SELECTDISTINCT[aac001],[aac003],部門代碼,但未編號,基數,個人,單位,金額FROM[明細$A3:H65536]"
Range("A2:I65536").ClearContents
Range("A2").CopyFromRecordsetcnn.Execute(SQL)
cnn.Close
Setcnn=Nothing
EndSub
你可以參考一下。
⑻ Excel表中連接sql並使用sql語句引用excel單元格數據作為查詢條件
1、將需要處理的記錄復制到一個新的工作表,然後將在資料庫表中存在唯一值的列(比如物料編碼)後插入一列,用 CONCATENATE函數將其前後加上「'」。
⑼ SQL中如何通過EXCEL或TXT中的一列數據查詢SQL中的其他數據
我覺得你可以建一個臨時表,把EXCEL中的數據填充到臨時表,在資料庫中直接用left join 關聯
如果EXCEL中的數據不多,直接把EXCEL中的欄位用,拼接一下,sql 用in 查找
⑽ 如何在Excel中使用SQL語言實現數據查詢
1.選中表格後單擊右鍵選擇「定義名稱」
2.單擊後,出現命名對話框
3.這里將表1和表2分別命名為Table1和Table2。
4.選擇上方的「數據」選項卡,選擇「自其他來源」下的「來自Microsoft Query 」選項
5.在彈出的對話框中選擇Excel Files*那一項,並且把對話框下面的「使用「查詢向導」創建/編輯查詢」勾掉,
6.點擊「確定」,便出現「選擇工作簿」的對話框,這里選擇包含表1和表2的工作表xxx.xlsx
7.點擊確定後之後彈出添加表的對話框
8.點擊確定後之後彈出添加表的對話框
9.輸入SQL語句的按鈕,彈出輸入SQL語句的對話框 輸入SQL,看到篩選出來的數據表
10.將篩選出來的數據表再返回至Excel工作表當中,選擇菜單中的「文件」——「將數據返回Microsoft Excel」,純手打,望採納答案哦,謝謝