この記事では、excel に関する関連知識を提供します。主に、リージョン テーブル、クロスワークブック テーブルなど、SQL クエリでのテーブルの使用方法を紹介します。皆様のお役に立てれば幸いです。
関連する学習の推奨事項: excel チュートリアル
今日は、SQL ステートメント内の Excel テーブルについて説明します。
1. テーブルへの領域
Excel ワークシートとデータベース データ テーブルには多くの違いがあります。最も重要な点は、データベース データ テーブルは行と列で構成されるものとして理解できるのに対し、データベース データ テーブルは行と列で構成されるものとして理解できることです。 Excel ワークシートは一連のセルで構成されており、これらのセルには A1 または R1C1 という固有のアドレス表現方法があり、A2:H8 のようにデータが接続されたセル範囲を形成することもできます。
それでは、Excel ワークシートの一部のみを計算する必要がある場合、それを SQL でどのように表現すればよいのでしょうか?
この種の問題は非常に一般的です。
たとえば、多くの人は Excel のタイトル行が表の 1 行目ではなく 2 行目にあります...
下図に示すように
現時点では、Excel ワークシート全体ではなく、フィールド名を使用してデータを処理しやすくするために、列 A2:F のセル範囲を計算したいと考えています...
別の例、a テーブルの内側と外側に 2 つ以上の「テーブル」があります... この文は何を意味しますか?
下の図を参照してください
図に示されているテーブルには、「教師テーブル」と「生徒テーブル」の両方があります。 SQL で A2:D8 の教師テーブル データを参照および計算したいだけです...
... Excel の SQL は、実際にはワークシートのセル範囲を「テーブル」として使用することをサポートしています。
上の図に示されている問題の場合、SQL は次のように記述できます:
SELECT 姓名,学科 FROM [数据表$A2:D8]
クエリの結果は次のとおりです:
SELECT 姓名,爱好 FROM [学生表$A2:F]さらに、SQL リファレンスが必要な場合は、テーブルの列 D:G 全体のデータを計算するには、SQL を次のように記述できます。
SELECT * FROM [学生表$D:G]Excel ワークシート領域、つまりワークシート名、ドル記号を表現する上記の方法を要約します。 $、相対参照状態のセル アドレス、そして最後に角括弧で囲まれます。 ただ、姜子。 このセクションのヒント:
SELECT * FROM [D:\EH小学\学生表.xlsx].[成绩表$]FROM の後に指定されたテーブル文字列は、2 つの文字列で構成されます。最初の角括弧の内側は、指定されたワークブックのストレージ パスにサフィックスを付けた完全なワークブック名です。最後の角括弧の内側はワークシート名で、2 つの角括弧はピリオド (.) で接続されています。 VBA ADO を通じて SQL ステートメントを使用している場合...警告の前にある本棚をノックしてください: VBA の基礎が不十分な子供用の靴、次の内容はスキップしてください...OLE DB メソッドと比較すると、VBA ADO メソッドは非常に柔軟です。ADO を使用して、指定されたブックへのリンクを直接作成して開くことができるため、SQL ステートメントでブックの完全な名前を指定する必要はありません。 、など。 コード リファレンスは次のとおりです。
Sub ADO_SQL() '适用于除2003版以外的高版本Excel Dim cnn As Object, rst As Object Dim strPath As String, strCnn As String, strSQL As String Dim i As Long Set cnn = CreateObject("adodb.connection") strPath = "D:\EH小学\学生表.xlsx" '指定工作簿 strCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & strPath cnn.Open strCnn '创建并打开到指定工作簿的链接 strSQL = "SELECT * FROM [成绩表$]" 'strSQL语句,查询成绩表的所有数据 Set rst = cnn.Execute(strSQL) '执行strSQL Cells.ClearContents For i = 0 To rst.Fields.Count - 1 Cells(1, i + 1) = rst.Fields(i).Name Next Range("a2").CopyFromRecordset rst cnn.Close Set cnn = Nothing End Su上記のコードの 7 行目は、接続する必要があるブックの完全な名前を直接指定しており、 SQL ステートメント。
但更多的情况是,ADO创建的链接是一个工作簿,需要获取的数据在另一个或多个工作簿,例如两个工作簿之间的数据查询统计。此时通常使用的代码如下
Sub ADO_SQL2() '适用于除2003版以外的高版本Excel Dim cnn As Object, rst As Object Dim strPath As String, strCnn As String, strSQL As String Dim i As Long Set cnn = CreateObject("adodb.connection") strPath = ThisWorkbook.FullName '代码所在工作簿的完整名称 strCnn = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & strPath cnn.Open strCnn '创建到代码所在工作簿的链接 strSQL = "SELECT * FROM [Excel 12.0;DATABASE=D:\EH小学\学生表.xlsm].[成绩表$]" Set rst = cnn.Execute(strSQL) '执行SQL Cells.ClearContents For i = 0 To rst.Fields.Count - 1 Cells(1, i + 1) = rst.Fields(i).Name Next Range("a2").CopyFromRecordset rst cnn.Close Set cnn = Nothing End Sub
代码中第7行创建了当前工作簿的链接,SQL语句中又指定了另外一个工作簿的链接。SQL语句如下
SELECT * FROM [Excel 12.0;DATABASE=D:\EH小学\学生表.xlsx].[成绩表$]
FROM指定表的字符串有两部分组成。第一个中括号中,Excel 12.0是目标工作簿的版本号,第2章时我们讲过,Excel 12.0适用于除了2003以外的所有Excel版本。DATABASE指定的是数据源工作簿的路径和名称。第2个中括号内是工作表名。两个中括号之间使用英文点号相连。
看起来似乎VBA+ADO方法的SQL语句比OLE DB法更复杂?确实如此,不过前者的功能也更强大。比如,它可以通过VBA对象的属性、方法,循环和判断语句等,有条件的筛选工作簿和工作表……相比之下,OLE DB中的SQL语句就是纯手工常量模式了。当然,更重要的是,前者不但可以查数据,还可以增改删数据,后者却只限于查。
相关学习推荐:excel教程
以上がExcel SQL クエリでの「テーブル」の使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このチュートリアルでは、中央値関数を使用してExcelの数値データの中央値を計算する方法について説明します。 中央傾向の重要な尺度である中央値は、データセットの中央値を識別し、中央の傾向のより堅牢な表現を提供します

マスターグーグルシートcountif:包括的なガイド このガイドでは、Googleシートの多用途のCountif機能を調査し、単純なセルカウントを超えてそのアプリケーションを実証しています。 正確な一致や部分的な一致から漢までのさまざまなシナリオをカバーします

このチュートリアルは、さまざまな方法、アクセス制御、競合解決をカバーするExcelワークブックを共有するための包括的なガイドを提供します。 Modern Excelバージョン(2010、2013、2016、およびその後)共同編集を簡素化し、mの必要性を排除します

このチュートリアルでは、.xlsファイルを.jpg画像に変換するためのさまざまな方法を調査し、ビルトインWindowsツールと無料のオンラインコンバーターの両方を網羅しています。 プレゼンテーションを作成したり、スプレッドシートデータを安全に共有したり、ドキュメントを設計したりする必要がありますか?ヨーヨーを変換します

このチュートリアルは、Excel名の機能を明確にし、セル、範囲、定数、または式の名前を定義する方法を示します。 また、定義された名前の編集、フィルタリング、削除もカバーしています。 Excelの名前は、信じられないほど便利ですが、しばしばOverloです

このチュートリアルは、標準偏差と平均の標準誤差の区別を明確にし、標準偏差計算のための最適なExcel関数を導きます。 記述統計では、平均および標準偏差は内在的です

このExcelチュートリアルでは、正方形の根とNth Rootsを計算する方法を示しています。 平方根を見つけることは一般的な数学的操作であり、Excelはいくつかの方法を提供します。 Excelの正方形の根を計算する方法: SQRT関数を使用します

Googleシートのパワーのロックを解除:初心者向けガイド このチュートリアルでは、MS Excelに代わる強力で多目的な代替品であるGoogleシートの基礎を紹介します。 スプレッドシートを簡単に管理し、重要な機能を活用し、コラボレーションする方法を学ぶ


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!
