【Power Automate】CSVデータをSQLクエリで処理する方法

村瀬 俊昭

DX推進

■概要
デスクトップ版Power Automate(以下、PAD)でCSVファイルから目的のデータを抽出する際、多くの場合はCSVファイルを読み込んだ後、Ifアクションなどを使った条件を設定し、抽出する方法が一般的です。しかし、SQLを使用することでフローを簡素化し、処理速度を向上させることができます。本コラムでは、その設定方法を紹介します。

■SQLを使用するための準備
①「Schema.ini」の作成
CSVファイル内のデータをSQLで抽出する際には「Schema.ini」という設定ファイルが必要です。データベースとして扱いたいCSVファイル内の項目を「Schema.ini」ファイル内で定義します。

日付,商品名,数量,売上
2024-01-01,もも,12,2400
2024-01-01,りんご,20,3000
2024-01-02,ぶどう,20,6000
2024-01-02,もも,1,200

図1:テストデータ(ファイル名:果物年間売上データ.csv)

[果物年間売上データ.csv]
Format=CSVDelimited
ColNameHeader=True
MaxScanRow=0
Character=ANSI
Col1=日付 Date
Col2=商品名 Text
Col3=数量 Long
Col4=売上 Long

図2:Schema.iniファイル記述例

図1は果物の年間売上データを想定したテストデータの先頭を表示しています。項目は日付、商品名、数量、売上の4種類の構成としています。
図2はテストデータに基づくSchema.iniファイルの設定で各行は以下の通りです。

表1:Schema.iniファイル設定項目一覧

6行目以降の項目名とデータ型の設定はCSVファイル内のデータから判断し、設定を行います。日付であればDate型、数値であればLong型というように任意に設定を行ってください。

 ②「Schema.ini」ファイルの保存場所
「Schema.ini」ファイルは対象のテストデータと同じフォルダ内に保存します。

 ③PADのアクションを設定
アクションペインの「データベース」カテゴリ内のアクションを使用します。
各アクションの順番と設定値は以下の通りです。
1「SQL接続を開く」
→データベース(今回だと果物年間売上データ.csv)と接続を行います。

図3:「SQL接続を開く」アクション設定例

接続文字列に以下を設定します。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\work\コラム;Extended Properties=”text;HDR=Yes;FMT=Delimited”;

図4:接続文字列設定例

図4内の「Source=」には「果物年間売上データ.csv」と「Schema.ini」ファイルが保存されたフォルダパスを指定します。

  2「SQLステートメントの実行」
   →①で接続したデータベースから任意で条件を指定し、データを抽出します。

図5:「SQLステートメントの実行」アクション設定例

SQLステートメントには必要な条件に応じてSQL文を設定します。

SELECT * FROM [果物年間売上データ.csv]

図6: SQLステートメント設定例

図6は果物年間売上データ.csvからすべてデータを抽出するSQLステートメントとなります。
(SQL構文の詳細については割愛します。)
 3「SQL接続を閉じる」
  →データベースとの接続を閉じます。

図7:「SQL接続を閉じる」アクション設定例

1「SQL接続を開く」アクションで作成された変数(%SQLConnection%)を指定することで接続を閉じることができます。

■りんごの売上合計を算出してみる
SQLステートメントに条件を設定し、果物年間売上データ.csvからりんごの売上合計を算出してみます。

SELECT SUM([売上]) As [総売上] FROM [果物年間売上データ.csv] WHERE 商品名=’りんご’

図8: りんごの売上合計抽出のSQL設定例

このように、SQLステートメントの条件を変更するだけで算出が可能です。合計のほか平均、最大値及び最小値や日付ごとに算出することも可能です。

■アクション数を比較してみる
<SQLを使用する場合>

図9:SQLを使用した場合のアクション数(3)

<SQLを使用しない場合>

図10:SQLを使用しない場合のアクション数(7)

SQLを使用するとアクション数が半分以下になり、処理速度の向上が期待できます。

■まとめ
SQLを使用したデータの抽出方法を紹介させていただきました。PADではCSVファイルのほかにもExcel、Microsoft Office Access、MySQLなど様々なデータソースに対してSQLを使用できるため環境に応じた最適な手法を選択してください。

2025年3月10日

著者紹介

村瀬 俊昭
DX推進支援部 ICT活用推進課

制作者の直近の記事

コラム一覧に戻る
お問い合わせ

PAGE TOP