【Power Automate 活用術】複数のCSVファイルを1つに結合する方法

-ツール系

今回は、Power Automate Desktop(PAD)を利用して、複数のCSVファイルを1つに結合する方法をご紹介します。

Power Automateは、Microsoft社から提供されているフリーのRPAツールです。

ショウT<br>
ショウT

このツールを活用することで、定型的なExcel操作を自動化したり、ブラウザ上での操作を記録&反復動作させたり、といったことが出来るみたいですよ!

Windows 10以降のOSを使っている方であれば、無償でPower Automateを利用できます。ぜひお試しください!

【Power Automate 活用術】複数のCSVファイルを1つに結合する方法

Power Automateで行いたいこと

たくさんあるCSVを1つにまとめたい

例題

例えば、あなたはゲーマー社に所属しているとします。

その会社では月ごとに、CSVファイルで顧客別の売上データを記録しているようです。

ある日あなたは上司から「2022年の1年間で、顧客No.A1001への売上データをまとめてほしい」と依頼を受けました。

ファイルを1つずつ開いて、まとめ用シートへコピペしていくには些か面倒な状態ですよね。

VBAを利用して集約するのもありですが、こんなときはPower Automateが活躍してくれます!

実際にあった例

上記の内容は、今回やり方をご紹介する上での例題です。

私の実体験では、複合機の印刷ログを結合するのにPower Automateが役立ちました。

とある理由から、いくつかの複合機で印刷履歴を確認する必要が生じたのですが、管理している複合機は100台以上あり、それぞれが1日おきにログ用CSVファイルを1つ生成しています。

そのため、複合機1台のログを1年分(=365日分)確認するには365個のCSVファイルを、3年分なら1,095個のCSVファイルをチェックする必要があります。

流石に1つずつ開いて確認する訳にはいかないので、久しぶりに結合用のVBAでも組もうかと考えていたところ、Power Automateでも同じことが出来るようなので試してみた次第です。

こちらの方が、作成したフローを2台目・3台目のログ結合に流用しやすいので便利でした!

CSV結合用のフローを作成する

事前準備

今回は、複数あるCSVファイルを1つのCSVにまとめるフローを作成します。

そのため、事前に結合先になる[空っぽのCSV]を作成しておきましょう!

例題では、[2022年-売上集計シート.CSV]という空のCSVファイルを作成しています。

Power Automateを起動し、フローを新規作成する

PADを起動し、新しいフローを作成する
今回は「csv結合」でフローを作成した

まずはPower Automate Desktop(以下PAD)を起動し、フローの新規作成を行いましょう。

Windows 11を利用されている方は、デフォルトでPCに導入されているはずです。

起動&作成手順
  1. [Windows]&[R]キーを押して、[ファイルを指定して実行]を開く。
  2. [名前]の枠に[ms-powerautomate://]と入力し、[Enter]キーを押す。
  3. [+新しいフロー]ボタンより、任意の名前でフローを作成する。

Windows 10を利用されている方は、PADのインストールが必要です。

下記公式サイトにアクセスし、[今すぐダウンロード]から導入を行ってください。

アクションを編集する

フローのメイン画面
①フォルダーの選択ダイアログを表示

フローの新規作成が完了したら、アクションの編集を行っていきます。

①フォルダーの選択ダイアログを表示

左端の[メッセージボックス]にある[フォルダーの選択ダイアログを表示]をクリックしましょう。

[ダイアログの説明]に[作業フォルダを指定する]と入力し、[保存]を押します。

②フォルダー内のファイルを取得
③For each

②フォルダー内のファイルを取得

左端の[フォルダー]から、[フォルダー内のファイルを取得]を立ち上げましょう。

[フォルダー]の枠に[%SelectedFolder%]と入力します。

[ファイル フィルター]には、特定のファイルのみを結合したい場合は[ファイル名.CSV]・格納されている全てのファイルを結合したい場合は[*.CSV]と入力しましょう。

例題では、顧客No.A1001の売上データのみを集計したいので[A1001.CSV]と入力しています。

なお、データが子フォルダに格納されている場合は、[サブフォルダーを含める]に✔しておきましょう。

③For each

左端の[ループ]から、[For each]を立ち上げましょう。

[反復処理を行う値]に[%Files%]と入力し、[保存]を押します。

④CSVファイルから読み取る
⑤CSVファイルに書き込む

④CSVファイルから読み取る

左端の[ファイル]から、[CSVファイルから読み取る]を立ち上げましょう。

[ファイル パス]に[%CurrentItem.FullName%]と入力し、[エンコード]を[システムの既定値]にした状態で[保存]を押します。

⑤CSVファイルに書き込む

左端の[ファイル]から、[CSVファイルに書き込む]を立ち上げましょう。

[書き込む変数]には[%CSVTable%]と入力します。

[ファイル パス]には、事前準備で作成した[空っぽのCSV]を指定しましょう。

[エンコード]を[システムの既定値]に設定し、[ファイルが存在する場合]は[内容を追加する]に変更した状態で[保存]を押します。

⑥完成
実行を押したあとは、データが格納されている親フォルダを選択する

①~⑤までのアクションを登録した完成形が⑥の画像です。

画面上部の[▶]を押すと、フローが実行されます。

最初に[フォルダーの選択ダイアログ]が表示されますので、データが格納されている親フォルダを選択しましょう。

処理が最後まで完了したあとに、結合先として準備した[空っぽのCSV]を開いてみて、データが格納されていればOKです!

最後に

今回は、Power Automate Desktop(PAD)を利用して、複数のCSVファイルを1つに結合する方法をご紹介しました。

ノーコードで簡単にタスクが自動化できるのは便利ですよね。

他にも面白そうな活用方法が見つかりましたら、随時ご紹介します!

それでは!

コメント

タイトルとURLをコピーしました