Excelが大好きだ!

Excel大好き経理マンがExcelの事を書き綴っていきます。


スポンサードリンク

SQL

新着順 人気順

マクロ実行ブックに対してADO.Connetion.Openが遅い問題への対応策

2025年4月頃からADO.Connection.Openが遅くなる事象が発生しています。 発生している事象と現時点で取れる対応策をご紹介します 問題の詳細 症状 ADO.Connection.Openを開いているブック(マクロ実行ブックを含む)に対して実行すると処理に12秒程度の時間…

Power QueryでSQLを使用してワークシートを読み込む方法

Power Queryを使用すると様々な方法で様々なデータをExcelに読み込むことが出来ます。 その中からSQLを使用してワークシートのデータを読み込む方法ご紹介します。 Power Queryとは Power Queryでの読込方法 読込方法の決定 OLEDBの設定 SQL文の設定 Power Q…

SQLでExcelの集計を簡単・楽しく - Recordsetの結果をシートに貼り付け

実際にExcelからSQLを使用するコードに沿って、コードの内容を紹介していきます。 Recordset の結果をシートに貼り付け タイトル行 データ部分 貼付け位置は自由自在 ベースとなるコードは下記のとおりです。 今回は「データの貼り付け作業」欄です。 Record…

SQL基礎問題にチャレンジ

エクセルの神髄さんがtwitter(現X)上で出題されているSQL基礎問題にチャレンジしました。 2025-11-08時点で出題されている10問は一応全て解答することが出来ました。 模範解答についてはエクセルの神髄さんのblog記事をご参照ください。 excel-ubara.com 当b…

SQL基礎問題5:複数のマスタテーブルの結合

導入記事にある通りエクセルの神髄さんのSQL基礎問題にチャレンジしていきます。 www.excellovers.com ExcelでSQLを使う方法については上記の記事を参照してください。 お題 【SQL問題】以下のテーブル構成とサンプルデータに基づき、「分類ID,分類名」ごと…

VBAでSQLを使用してシートの統合とクロス集計を行う(クロス集計編)

SQLでシートの統合とクロス集計を行う今回のシリーズ。 「男性」「女性」2つのシートを統合する 統合したデータを元にクロス集計を行う 完成したデータをシートに貼付け 前々回はシートの統合、前回グループ化を行いました。 www.excellovers.com www.excell…

SQLでExcelの集計を簡単・楽しく - ADODB.Connectionオブジェクト

ここからは実際にExcelからSQLを使用するコードに沿って、コードの内容を紹介していきます。 ADODB.Connectionオブジェクト メソッド・プロパティ Providerプロパティ Propertiesプロパティ Extended Properties ISAM HDR IMEX(IMport EXport mode) MAXSCANR…

SQLでExcelの集計を簡単・楽しく - ADODB.Recordsetオブジェクト

実際にExcelからSQLを使用するコードに沿って、コードの内容を紹介していきます。 メソッド・プロパティ Openメソッド Source ActiveConnection CursorType LockType Options Closeメソッド ベースとなるコードは下記のとおりです。 今回は「SQL文の指示を実…

SQLでExcelの集計を簡単・楽しく - Select文

今回からはExcelで使用可能なSQL文について紹介していきます。 SQLの基本構文 列名を別名に変更 定数を表示する ベースとなるコードを少し変更しました。 データの貼り付け先を別シートに変更しています。 SQLの基本構文 Select文は抽出・集計の最も基本的な…

SQLでExcelの集計を簡単・楽しく - MAX関数

SQLには集約関数という、列の指定した要素を集計するための関数が用意されています。 集約関数 MAX関数 MAX関数使用例 集約関数 関数 機能 COUNT 行数を数える SUM 数値の合計を算出 AVG 数値の平均を算出 MAX 数値の最大値を算出 MIN 数値の最小値を算出 MA…

SQLでExcelの集計を簡単・楽しく - HAVING句

以前にデータの抽出条件を設定するWHERE句、 データ範囲に線引してグループ化するGROUP BY句を紹介しました。 www.excellovers.com https://www.excellovers.com/entry/excelsql18www.excellovers.com ではグループ化した後のデータに抽出条件を設定するには…

SQLでExcelの集計を簡単・楽しく - DATEPART関数

Excel関数と同様にSQLにも文字列・算術関数以外に日付関数が存在します。 DATEPART関数 interval firstdayofweek firstweekofyear DATEPART関数使用例 DATEPART関数 今回は日付関数の中からDATEPART関数を紹介します。 DATEPART関数の構文は以下のとおりです…

CopyFromRecordsetのデータ取得数

長年使っている機能でも知らないことがあるものですね。 CopyFromRecordsetで取得するデータ数を指定できることを最近になって初めて知りました。 CopyFromRecordsetとは CopyFromRecordsetの引数 第2引数の効果 まとめ CopyFromRecordsetとは ADO.Recorset…

「思い立ったら即SQL」ユーザーフォームからSQL実行

例えば、 「血液型って何種類あるんだよ~」 となった時にピボットテーブルや重複の削除機能を利用するのが普通かと思います。 しかしそんなあなたにSQLでの集計をお勧めしたい! しかも一々コードを書く必要はありません! ショートカットキーでフォームを…

VBAでSQLを使用してシートの統合とクロス集計を行う(シートの統合編)

今までにもVBAからSQLを使用してSelect文で集計は行ってきた。 今回始めて表の統合とクロス集計をSQLで行ったので備忘録。 お題目 コード ADODBの使用準備 UNIONクエリ ALLオプション 実行結果 まとめ お題目 お題はこのようなデータを使用します。 ※データ…

3つのテーブルをADODBでJOINするSQL記載方法

表の結合。便利ですよね。 Excelではvlookup等の関数を使用して結合することが多いです。 今回は関数ではなくVBAでSQLを使用して表の結合を行いましたが、その際に2つではなく3つの表の結合をする際にちょっと詰まってしまったので備忘録。 例題 エラー症状 …

ADO.Connection.Openの遅延問題解消

以前に開いているブックに対してのADO.Connection.Openの処理が遅くなる事象を紹介しました。 2025年10月7日時点でこの事象が解消されているようなので簡単にご紹介いたします 遅延問題 この問題が発生した時に下記の記事で事象と対応方法についてご紹介しま…

SQLでExcelの集計を簡単・楽しく

Excelで資料作成してますかぁー!!! Excelでデータの加工してますかぁー!! Excel大量のデータ管理してますか! データの集計するのにマクロをたくさん書いてしんどいですか? 後で見返した時にコードの処理が何をしてるかわからない…? そんな時はSQLで…

SQLでExcelの集計を簡単・楽しく - Excel×SQLでのテーブル指定方法

Excel×SQLにおいてテーブルとして扱えるのはシートだけではありません。 Excel独特のテーブルの指定方法を紹介します。 テーブルとして扱えるデータ シート セル範囲 名前定義 ブックの場合 シートの場合 テーブル テーブルとして扱えるデータ Excelにおいて…

SQLでExcelの集計を簡単・楽しく - SUM関数

SQLには集約関数という、列の指定した要素を集計するための関数が用意されています。 集約関数 SUM関数 SUM関数使用例 集約関数 関数 機能 COUNT 行数を数える SUM 数値の合計を算出 AVG 数値の平均を算出 MAX 数値の最大値を算出 MIN 数値の最小値を算出 SU…

SQLでExcelの集計を簡単・楽しく - ABS関数

これまでに紹介してきたSUM関数等の集約関数ではなく、算術演算子のようにデータ1行に対して機能する関数を紹介します。 ABS関数 ABS関数使用例 まずは算術関数を紹介します。 関数 機能 ABS 絶対値 ROUND 四捨五入 ABS関数 今回は算術関数の中からABS関数を…

SQLでExcelの集計を簡単・楽しく - LEN関数

数値だけでなく文字列に対しても演算子や関数が用意されています。 LEN関数 LEN関数使用例 LEN関数 文字列関数の LEN関数 を紹介します。 LEN関数の構文は以下のとおりです。 select LEN(列名) from テーブル名 LEN関数は指定した要素の文字数を集計出来ます…

SQLでExcelの集計を簡単・楽しく - REPLACE関数

数値だけでなく文字列に対しても演算子や関数が用意されています。 REPLACE関数 REPLACE関数使用例 REPLACE関数 文字列関数の REPLACE関数 を紹介します。 REPLACE関数の構文は以下のとおりです。 select REPLACE(列名,置換前文字,置換後文字,検索開始位置,…

SQLでExcelの集計を簡単・楽しく - YEAR関数

Excel関数と同様にSQLにも文字列・算術関数以外に日付関数が存在します。 YEAR関数 YEAR関数使用例 YEAR関数 今回は日付関数の中からYEAR関数を紹介します。 YEAR関数の構文は以下のとおりです。 select YEAR(日付) from テーブル名 YEAR関数は日付から「年…

SQLでExcelの集計を簡単・楽しく - MONTH関数

Excel関数と同様にSQLにも文字列・算術関数以外に日付関数が存在します。 MONTH関数 MONTH関数使用例 MONTH関数 今回は日付関数の中からMONTH関数を紹介します。 MONTH関数の構文は以下のとおりです。 select MONTH(日付) from テーブル名 MONTH関数は日付か…

SQLでExcelの集計を簡単・楽しく - DATEVALUE関数

Excel関数と同様にSQLにも文字列・算術関数以外に日付関数が存在します。 DATEVALUE関数 DATEVALUE関数使用例 DATEVALUE関数 今回は日付関数の中からDATEVALUE関数を紹介します。 DATEVALUE関数の構文は以下のとおりです。 select DATEVALUE (date) from テ…

SQLでExcelの集計を簡単・楽しく - UNION演算子

SQLには複数のテーブルのデータを1つにまとめる集合演算子があります。 UNION演算子 ALLオプション UNION演算子使用例 UNION演算子 論理演算子の UNION演算子 を紹介します。 UNION演算子の構文は以下のとおりです。 select 列名 from テーブル名 UNION [ALL…

SQLでExcelの集計を簡単・楽しく - サブクエリ

Excel関数をネストするかのようにSELECT文も同じようにネストすることが出来ます。 ネストとは Excel関数では SQLでは サブクエリ使用例 ネストとは Excel関数では Excel関数で言うネストとは、関数の中に別の関数を挿入して、1つの関数式で複数の処理を実行…

SQLでExcelの集計を簡単・楽しく - クロス結合

SQLにはExcel関数のVLOOKUP関数のように複数のデータをマッチングして表示する「結合」という機能があります。 クロス結合 クロス結合使用例 クロス結合 クロス結合は「直積」という指定した2つのテーブルの全行の全ての組み合わせを返します。 クロス結合の…

SQLでExcelの集計を簡単・楽しく - TOP句

Where句のように抽出するデータを絞り込む機能が他にもあります。 TOP句 TOP句使用例 TOP句 抽出されたデータの内、「数値」で指定した要素数のみを表示する、「TOP句」です。 TOP句の構文は以下のとおりです select TOP 数値 列名 from テーブル名 TOP句は…