← 手順一覧へ戻る
Power Automate DesktopExcelよく使う

同じ列構成のExcelを1つの表へまとめる

各Excelの見出しを除くデータを、集約用ブックの末尾へ順番に追加します。

画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。

実行前に確認

  • 集約先やExcelの一時ファイル(~$で始まるファイル)は入力フォルダーへ置かないでください。
  • 列の順序・型を統一します。この例は値の集約で、書式や数式の複製ではありません。再実行すると同じデータも追加されます。

1使うアクション

  1. アクション 1Excel の起動
  2. アクション 2アクティブな Excel ワークシートを設定する
  3. アクション 3フォルダー内のファイルを取得
  4. アクション 4For eachFilesを処理。後述のEndまでが内側
  5. アクション 5Excel の起動元ファイル
  6. アクション 6アクティブな Excel ワークシートを設定する元の「明細」
  7. アクション 7Excel ワークシートから読み取る先頭行は列名
  8. アクション 8Excel ワークシートから列における最初の空の行を取得する集約先のA列
  9. アクション 9Excel ワークシートに書き込むデータテーブルを追記
  10. アクション 10Excel を閉じる元を保存せず閉じる
  11. アクション 11EndFor eachの終わり
  12. アクション 12Excel を閉じる

表で見る入力と処理結果

架空データ

同じ見出しを持つ2冊の明細を、集約.xlsxの見出しの下へ追加します。

Desktop:Excelブック/ワークシート
入力:C:\PAD練習\入力 内の各.xlsxの「明細」/出力:C:\PAD練習\集約.xlsx の「集約」

以下は手順に沿った期待値です。実際のPower Automate・Excel環境で実行して確認した結果ではありません。セルや行の着目箇所には「●」を付けています。

入力1冊目の例

入力フォルダーの店舗A.xlsx「明細」。使用範囲は A1:B3、見出しは A1/B1 です。
行A:商品B:数量
1商品数量
2みかん5
3バナナ8
↓ 処理する行・列/設定

各入力の先頭行を列名として %ExcelData% に読み取り、集約先A列の空き行 %AppendRow% から値を追記します。集約先は A1=商品・B1=数量 の見出しだけで開始します。

入力2冊目の例

入力フォルダーの店舗B.xlsx「明細」。使用範囲は A1:B2、見出しは A1/B1 です。
行A:商品B:数量
1商品数量
2りんご10

集約・保存後の期待値

集約.xlsx「集約」の A1:B4。店舗A→店舗Bの順に処理した場合です。A1/B1の見出しは1回だけ残ります。
行A:商品B:数量
1商品数量
2● みかん● 5
3● バナナ● 8
4● りんご● 10
結果の見方

1冊目を A2 から、2冊目を A4 から追記し、商品3件の集約表を保存します。入力ファイルは保存せず閉じます。

  • ファイル名と処理順は説明用です。実際の並びは %Files% の順に依存し、この記事の設定だけではファイル名順を保証しません。
  • 列は両方とも商品→数量の順にそろえ、A列に途中の空白がない状態で使います。再実行すると同じ明細も追加されます。
  • 集約するのは値です。入力の書式や数式そのものを複製する例ではありません。

図で見る処理のイメージ

概念図

各Excelの見出しを除くデータを、集約用ブックの末尾へ順番に追加します。

  1. 入力

    2冊に同じ見出しと明細

  2. 繰り返す

    1冊ずつ読み取る

  3. 追記

    集約表の空き行へ値を追加

  4. 保存

    見出し1行+全明細

結果の例

複数ブックの明細が1つの表になります。

図は設定例の流れを表したもので、実行結果の画面ではありません。

設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。

2実際の設定内容

入力する値・操作手順を確認する6ステップの設定と確認方法
  1. 1

    準備:入力フォルダー C:\PAD練習\入力 の各.xlsxに「明細」シートを用意します。A1=商品、B1=数量、A列に空白なし。集約先 C:\PAD練習\集約.xlsx の「集約」には同じ見出しだけを置きます。

  2. 2

    集約.xlsx を開き %DestinationExcel% にし、「集約」をアクティブ化します。フォルダー内のファイルを取得は入力フォルダー、*.xlsx、サブフォルダーなし、出力 %Files% にします。

  3. 3

    For eachの値 %Files%、現在の項目 %CurrentFile%。各 %CurrentFile.FullName% を開き %SourceExcel% にして「明細」を選びます。

  4. 4

    読み取りは %SourceExcel% の使用範囲、先頭行を列名にする設定をオン、出力 %ExcelData%。入力には1件以上の明細があるファイルだけを用意します。

  5. 5

    集約先 %DestinationExcel% のA列の最初の空き行を %AppendRow% に受け取り、A列・%AppendRow% 行を開始位置として %ExcelData% を書き込みます。見出しは書き足しません。

  6. 6

    ループ内で %SourceExcel% を保存せず閉じます。Endの後で %DestinationExcel% を保存して閉じます。

Microsoft公式ページで確認する