【Power Automate の小技】DataverseやListsのデータをExcelの表に書き出す方法

Power Automateは、Microsoftが提供する強力な自動化ツールです。 これにより、さまざまなアプリケーション間でのタスクを簡単に自動化し、日常業務を効率化することが可能です。特に、Power Appsと組み合わせることで、専門的な技術知識や開発経験がなくても、生産性を高めるアプリケーションを比較的簡単に作成することが可能です。

はじめに

ビジネスの現場では、日々生み出される膨大なデータを効率的に管理することが求められています。Power Apps(Teams)を使用する際、Dataverse for TeamsやListsをデータソースとして活用することは、多くのビジネスプロセスにおいて効果的です。

また、これらのデータソースからExcelにデータを書き出すことは、分析やレポート作成を容易にし、業務のスムーズな遂行に寄与します。

本記事では、Power Automateを用いて、DataverseやListsのデータをExcelに書き出す方法を、具体的な手順と共に解説します。 自動化機能を駆使することで、手作業による時間の浪費を減らし、データ管理の精度を向上させることができます。

なお、この記事は、Power Automateを起動してフローを作成し、タスクを自動化するなど、ある程度Power Automateの基本操作ができる方を対象にしています。Power Automateの基本操作から学びたい方は、別途関連サイトや書籍を参考にすることをおすすめします。

さらに、Power Appsの基本操作も理解されていることをおすすめします。これにより、両プラットフォームの機能を最大限に活用し、業務の自動化とアプリケーション開発の両方において、より効果的な結果を得ることができます。

フローの概要

この記事では、クラウド上(ここではTeams上)のExcelファイルに、Dataverse又はListsのデータソースからフィルタリングにより抽出した任意のレコードを転記する方法について解説します。Excelファイルはテンプレートとして用意したものを使用し、ファイル名には日時を付記します。Teams上で書き出しファイルを管理することによりチームでファイルを共有することができます(個人利用する場合であればOneDriveが便利)。

次のセクションでは、具体的な処理の流れを詳しく説明します。

ステップの詳細

Power Automateでは、ステップを組み合わせて目的の処理を行います。以下に各ステップの詳細について説明します。

powerautomate_datasource_excel05

Power Apps からフローをトリガーする

まず最初のステップでは、Power Appsからフローを開始します。具体的には、Power Apps内の特定のアクション(ボタンクリックなど)が行われたときにフローが自動的に開始されます。その際、引数として行フィルターの情報を受け取ることができます。

powerautomate_datasource_excel01
  1. Power Automateにログインし、新しいフローを作成します。
  2. Power Appsから行フィルターの情報を受け取ります。ここでは、日付の範囲を指定しています。 

データソースの行を取得する/行のフィルターを設定する

次のステップでは、DataverseやListsから必要なデータを取得します。具体的には、データソースから全ての行を取得し、取得したデータから、特定の条件に一致する行だけをフィルタリングします。

  1. 「新しいステップ」をクリックし、「Microsoft Dataverse」コネクタ(Dataverse)又は「SharePoint」コネクタ(Lists)を選択します。
  2. 「行を一覧にする」アクション(Dataverse)又は「複数項目の取得」アクション(Lists)を追加し、対象となるテーブルを選択します。
  3. 「行を一覧にする」アクション内で「行のフィルター」(Dataverse)又は「複数項目の取得」アクション内で「フィルタークエリ」(Lists)に抽出条件を指定します。下図の例では、日付範囲に基づいたフィルタリングを行っています。

 フィルターの指定方法については、次の記事も参照してください。

関連記事

Power Automateは、Microsoftが提供する強力な自動化ツールです。これにより、さまざまなアプリケーション間でのタスクを簡単に自動化できます。Power Appsと組み合わせることで、専門的な技術知識や開発経験がなくても、[…]

powerautomate_dataverse_lists_filter

Excelファイルの準備(テンプレートを読み込む)

事前に用意したExcelのテンプレートファイルを読み込みます。このテンプレートには、データを書き出すためのや、データのレイアウトが定義されています。テンプレートを使用することで、ユーザでデータの書き出し先のフォーマットを統一することができます。

ここでは、Teams上に用意したテンプレートファイルを読み込みます。

powerautomate_datasource_excel04
  1. 「新しいステップ」をクリックし、「SharePoint」コネクタを選択します。
  2. 「ファイルコンテンツの取得」アクションを追加し、サイトのアドレスとファイル識別子を指定します。
  3. こうして取得したテンプレートファイルは、後続のアクションで使用することができます。

Excelファイルに名前を付けて任意のフォルダに保存する

読み込んだテンプレートファイルに名前を付け、任意のフォルダに保存します。ファイル名には日時を付記することで、データの更新日時を一目で確認できます。

取得したデータを保存するためのExcelファイルに名前を付けて、指定したフォルダに保存する方法を説明します。ファイル命名のルールや保存先フォルダの指定方法について具体的に解説します。

powerautomate_datasource_excel06
  1. 「新しいステップ」をクリックし、「SharePoint」コネクタを選択します。
  2. 「ファイルの作成」アクションを追加し、サイトのアドレスとフォルダーのパス、ファイル名及びファイルコンテンツを指定します。
  3. 「ファイル名」には、次のとおり動的コンテンツの式を利用し、日付と時刻の内容を含めます。
    concat('SodanList-',formatDateTime(addHours(utcNow(),9),'yyyyMMddHHmmss'),'.xlsx')
  4. 「ファイルコンテンツ」には、前のステップで取得したテンプレートファイルからファイルコンテンツを指定します。

Excelの表にDataverseの行を転記する

最後に、データソースからフィルタリングして取得したデータを一行ずつExcelの表に転記します。ループのなかで、日付データについては、タイムゾーンを「(UTC+09:00)大阪、札幌、東京」に変換する処理を行っています。

  1. 「新しいステップ」をクリックし、「コントロール」から「それぞれに適用する」コントロールを選択します。
  2. 「以前の手順から出力を選択」に「行を一覧にする」アクションの動的コンテンツである「value(アイテムの一覧)」を設定します。
  3. 「日時」コネクタの「タイムゾーンの変換」アクションを追加し、「基準時間」の対象となるデータソース内の日付データと変換に必要な情報を設定します。
    powerautomate_datasource_excel10
  4. 「データ操作」コネクタの「作成」アクションを追加し、「入力」に「タイムゾーンの変換」アクションで処理した動的コンテンツである「変換後の時間」を設定します。このステップは必須ではありませんが、後の処理をわかりやすくするため追加しました。
  5. 「Excel Online(Business)」コネクタの「表に行を追加」アクションを追加し、「場所」に前のステップで作成したファイルの置き場所を指定します。
  6. 「ファイル」には、前のステップで作成したファイルのパス名を指定します。ファイル名には動的コンテンツから「ファイルまたはフォルダの名前(Name)」を設定しています。
  7. 「テーブル」には、Excelファイルに設定されているテーブル名を設定します。
  8. データソースから取得したデータを対応するExcelの列にマッピングします(上図は、Dataverseの例)。

まとめ

本記事では、Power Automateを用いて、DataverseやListsのデータをExcelに書き出す方法を紹介しました。
この手法は、日々の業務で生み出される膨大なデータを効率的に管理し、分析やレポート作成を容易にするための重要な手段です。
Power Automateの自動化機能を駆使することで、手作業による時間の浪費を減らし、データ管理の精度を向上させることが可能です。
また、Power Appsと組み合わせることで、専門的な技術知識や開発経験がなくても、生産性を高めるアプリケーションを比較的簡単に作成することが可能となります。
今回ご紹介した方法は、あくまでも一例です。必要に応じて、フローをカスタマイズすることで、様々なニーズに対応することができます。
ぜひ今回ご紹介した方法を参考に、Power Automateを活用して、業務を自動化してみてください。