本記事では、
Power Automate DesktopでExcelから抽出したデータテーブル(DataTable)を整理する方法を解説しています
できること
Power Automate DesktopでExcelからデータを抽出して作業の自動化を構築する際、Excelが色々できてしまうが故に扱いが難しい場合があります
今回は、下図のようなExcelファイルからデータテーブル(DataTable)を無駄なく抽出する具体的な方法をお伝えします
▼Excelサンプル
・黄色列は自由入力
・青色列は最初から数式が入力されている
・赤色列はPower Automate Desktopで販売管理システムへ入力した結果を返す列
アクションの解説
作成したフローはこちらになります
以下のような流れになっています
1.Excelからすべてのデータをデータテーブルで抽出
2.整理されたデータを格納するデータテーブルを作成
3.Excelデータをループして、出荷日が入力されている場合は2のデータテーブルに格納
4.出荷日が空白になったら、ループを抜ける
5.新しく作ったデータテーブルの0行目に空白データがあるので削除
1.Excelからすべてのデータをデータテーブルで抽出
ファイルダイアログを表示して、Excelファイルを選択して起動
その後、Excelからすべてのデータをデータテーブルで抽出します
2.整理されたデータを格納するデータテーブルを作成
データが入力されていない行の情報は必要ないため、必要な情報のみ格納するデータテーブルを作成します
使うアクションは、変数 > データテーブル > 新しいデータテーブルを作成する
▼アクションの詳細
アクションをドラッグすると、新しいテーブルの中身が「0行,0列」で表示されます
データテーブルの項目情報を設定するため、右側の編集ボタンをクリックします
データテーブルの編集方法は次の通りです
3.Excelデータをループして、出荷日が入力されている場合は2のデータテーブルに格納
4.出荷日が空白になったら、ループを抜ける
3と4はまとめて解説します
すべてのデータを取得したデータテーブル「ExcelData」をFor eachでループします
その中で、表の上から1行ずつ、1列目の出荷日の中身が空白かどうかを判定します
空白ではない場合・・・整理されたデータテーブルに「CurrentItem」を行ごと追加します
空白の場合・・・入力分すべてが抽出できたのでループを抜けます
5.新しく作ったデータテーブルの0行目に空白データがあるので削除
4でループを抜けた直後の整理されたデータテーブルは次のようになっています
ですので、データテーブルから行を削除するアクションで整理します
すると、必要なデータのみが抽出されたデータテーブルが完成します
ポイント
- 取り込むExcelデータが上詰めで入力されている場合に有効です
- 最終行を別の方法で判断して、最初から必要な個所のみデータテーブルとして抽出も可能です
- データの中に空白行がある場合は、全行チェックしてデータがある行のみ取り込みが必要です
- 自動化を考える際は、取り込むデータが整理された状態が望ましい(業務の観点から無くせないものはしょうがないが、今までこうしているからそのまま利用するはナンセンス)
- 目的に応じて、帳票のレイアウトや項目の整理をしましょう
最後に
Excelが便利すぎるが故に起こりうるデータテーブルの整理方法をお伝えしました
業務改善の中で、このExcelの表を利用するのは厳しいな、という場面は結構あります
そういった際は、Power Automate Desktop側でも色々とできることがありますので、今回の内容を参考にしてみてください
もちろん、自動化は今やっている作業をそのまま自動化することが正義ではありませんので、その作業の目的を達成するためにExcel側にも自動化に合わせた修正を行うべきです
作業者側からは「やり方が変わる」ことへの反発は良く起こりますが、折り合いをつけて進めていきましょう