it-swarm-ja.com

SQLを使用して他のExcelファイルからExcelデータテーブルを作成できますか?

私はSQLを十分に知っており、基本的なクエリを実行し、データベース内の複数のテーブルに分割されたデータを操作します。私はExcel2007を少しよく知っており、機械工学プロジェクトを管理するために頻繁に使用しています。

Excelで、複数のスプレッドシートのデータを操作して1つのテーブルに結合したい場合があります。これはSQLクエリに適したタスクです。通常、このような問題が発生した場合、すぐに反応するのは、頭の中でクエリを作成し始めることです。残念ながら、多くの場合、SQLクエリはExcel関数に簡単に変換できず、これが私の足を引っ張っています。

Excel内でこれらの関数にSQLを利用することは可能ですか?

4
NoCatharsis

ADO Excel VBAで使用できます。例:

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset 

''This is just a convenient name to test, it would probably be
''better to use the full file name eg C:\Docs\XL.xls
strFile = Workbooks(1).FullName

''For ACE see: http://www.connectionstrings.com/Excel-2007
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile _
    & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"

Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

cn.Open strCon

''Pick one:
strSQL = "SELECT * FROM DataTable" ''Named range
strSQL = "SELECT * FROM [Sheet1$A1:E346]" ''Range
strSQL = "SELECT * FROM [Sheet1$]" ''All the data in a sheet
strSQL = "SELECT * FROM [Excel 8.0;HDR=YES;IMEX=1;" _
       & "database=C:\Docs\LTD.xls].[Sheet1$]" ''Refer to second workbook

rs.Open strSQL, cn

''Write a recordset to a sheet
Worksheets("Sheet3").Cells(2, 1).CopyFromRecordset rs

クエリでは、JetSQLで受け入れ可能なものをすべて使用できます。

Fundamental Microsoft Jet SQL for Access 2000
Intermediate Microsoft Jet SQL for Access 2000
Advanced Microsoft Jet SQL for Access 2000

あなたはかなり多くを見つけるでしょう: https://stackoverflow.com/ 、MS Access、SQL Server、MySQLなどへの追加を含みます。

5
Remou

あなたのケースは私が数ヶ月前に持っていたのとまったく同じです。また、Excelでデータを操作する必要があるたびに、頭の中でSQLクエリを作成しようとしています。そこで、 XLTools SQL Queries という小さなアドインを作成しました。今、私はあなたや私のような他の人のためにそれを私たちのウェブサイトに公開しました!

埋め込みSQLエディターを使用してExcelワークブックのテーブルに対してSQLクエリを作成し、結果を新規または既存のワークシートに配置するオプションを指定してすぐに実行できます。

SQLクエリを作成して実行するだけでよい場合は、はるかに使いやすくなります。VBAや、MSQueryを使用した複雑な操作は必要ありません。

次に例を示します。

XLTools SQL Queries - Query Builder

1
Peter Liapin