Excelのテーブル～Power Platform関連へ

## はじめに
　Power Platformの各サービスから接続できるデータの保管先の代表例としては、SQL Server等データベースやCSVやExcelなど各種デスクトップファイルなど多種多様にあります。
　ここでは、基本的な動きの理解のために、画面のようなごく簡単な例として、Excelをデータの保管場所として使う例を書きます。

### Excelでのテーブルの書式
　サンプルのExcelファイルを作るために、Microsoft 365のポータルである [https://office.com](https://office.com) にあるアプリ一覧から[Excel]を選択し、「新しい空白のブック」を作成します。

図のように見出しと15行程度のサンプルデータを準備します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/8a5ae89f-545e-32ed-b462-7165d796dc23.png)

範囲を選択し、[ホーム]タブ、[テーブルとして書式設定]より、テーブルとして認識させます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/0d7742f2-f792-b59b-cb88-e3ae09184966.png)

[デザイン]タブの「テーブル名」で名前を変更できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/907482d7-4903-1924-b2e1-07ce19121355.png)

OneDrive上に保存して閉じます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/f482c41a-a032-6a23-a2ad-f985142c8b70.png)

### Power AutomateからExcelに書き込む。
　「Formsから投稿があったら、Power Automate経由でExcel Onlineに記録。合わせてTeamsに通知」してみましょう。

#### Formsでフォームを作成
　Microsoft 365 ポータル [https://office.com](https://office.com) のアプリ一覧から[Forms]を選択し、2項目のフォームを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/2fb28f50-dbf9-a366-fd1f-26907f322f1e.png)

#### Power Automateからの連携
　Microsoft 365 ポータル [https://office.com](https://office.com) のアプリ一覧から[Power Automate]を選択します。作成から[自動フロー]を選択します。

　自動フローの作成では、フロー名を入力し、フローのトリガーを選択では、データの入力をFormsにするので、[新しい応答が送信されるとき]とします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/877d65e4-db6f-8b5a-602d-591df6fbab30.png)
　プルダウンから対象のフォームを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/0c661a9c-31d1-8bfd-4681-502e5ef21995.png)
　続いてのアクションの選択では、キーワードを入力します。ここでは、Formsの処理を続けるので「Forms」と入力すると、候補が絞られます。「応答の詳細を取得する」を選択します。前と同様にプルダウンから対象のフォームを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/a7bc15dd-6308-120d-ab3e-c13e0f22a6f5.png)
　応答IDは、動的なコンテンツに1つ候補があるので選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/129f0021-7687-de78-493d-3775adb25fab.png)
　次のアクションでは候補に、Excel Onlnineが見えているので選択し、「表に行を追加」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/3b1b45af-53c0-5026-e154-2f3d08bfb984.png)
　こちらのプロパティの設定は、ファイルの保存場所等を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/a1e61f2c-1440-d142-dcc9-0385a546cd77.png)
　テーブル名まで選択すると、テーブル内のフィールドが表示されます。この中で、NameとOverviewを選択します。Formsの候補があるので、登録します。連携しない項目のCountはそのままで
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/82826496-dbfe-4fe4-7fe8-2f19cadbaae8.png)
　これでFormsからデータが送られたらExcelを更新する処理は終わりです。
　次のステップで、Teamsの通知を作成しましょう。「Microsoft Teams」を選び、「メッセージをフロー ボットとしてチャンネルに投稿する」を選択します。
　メッセージを投稿するチームやチャネルを指定し、メッセージ本文等を指定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/e72e3397-e24e-ec9d-a679-37a80475004d.png)
　保存して、右上の「テスト」から、「トリガーアクション」を実行するを選択し、「保存&テスト」を実行します。こちらでデータの受付待ち状態になります。

#### Formsからテスト投稿
　先ほどのFormsに戻り、「プレビュー」でフォームを実行し、データを入力して、送信します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/d3e848ca-9d17-9672-0bd6-f4bbba13589a.png)
　Power Automateに戻ると正常に実行されたことがわかります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/a6cf5136-df75-5392-2ef2-3a5a2ca206e0.png)
　Teamsを確認すると...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/515d643b-44cd-9cfd-0e76-3b72a9642428.png)
　実行されていますね。HTMLタグが指定されていないので、1行になっています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/c03dc1d5-60a2-4f01-c18e-cf8375f126c2.png)
　Excelはどうでしょう？記録されているか見てみると...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/41aaa4df-77e8-d075-2578-9c86cfb6e5c8.png)
 更新されていますね～ Excel Onlineだとブラウザ上で開いていても、Power Automateからの更新を受けます。

### Power Appsからの連携
　次にPower Appsからアプリを作ってみましょう。Microsoft 365 ポータル [https://office.com](https://office.com) のアプリ一覧から[Power Apps]を選択します。データから開始で、[Excel Online]を選択します。
　OneDriveに接続し、サンプル記録のExcelのテーブルを指定し接続します。
そうすると、20秒ほどで...
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/041bbb64-c740-35bf-ba23-f9dc4ea32b2d.png)
アプリが完成します。
このアプリのプレビューを確認してみると
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/8927f74f-2a63-4006-7543-881add210cb9.png)
スマホがPC上で動いているイメージでアプリが動きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/52c1a338-7764-fd6e-2ea9-f55d3c7f2937.png)
右上の「＋」からは新規登録ができるかやってみましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/55a813f0-a63b-cb48-6e1c-93577fefdf8c.png)
右上の「ｖ」で投稿が完了し、一覧で「石川」で絞ると、登録されていますね。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/adf32b1f-9b7d-cf68-21a4-35011b0d1a4a.png)
Excelで記録を確認します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/09074449-4136-9ae4-3064-c898effd096c.png)
登録されていますね。一番右の列は、Power Appでアプリを作った場合に自動で作られるものです。
アプリのプレビュー実行は、右上の「ｘ」で閉じ、アプリのカスタマイズを行う画面で、テーマを変えたり、機能を改良したりできます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/8ee7e131-5d65-179e-e467-57ce0bbe3c15.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/11cd490d-9eb1-ce53-a817-d7ea88881c5a.png)
アプリを保存しましょう。[ファイル]タブから[設定]で名前等を指定し、[保存]します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/6e94c8bb-41a0-c3a7-7952-8d8ef8da702f.png) 
[共有]を押と、組織内の誰とアプリを共有するか等指定できます。自分自身や指定した相手にはスマホのPower Appsアプリからアプリを呼び出して利用できます。

### Power BIからの連携
　続いて、Power BIからレポートを作ってみましょう。Microsoft 365 ポータル [https://office.com](https://office.com) のアプリ一覧から[Power BI]を選択します。
Power BIのホーム画面左下から「データを取得」を選択し、「新しいコンテンツの作成」から「ファイル」の取得を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/147ace48-35b3-59c7-33af-4c19d82eebc2.png)

[OneDrive - Business] を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/2b6fb25e-6e29-063e-dfb8-fde909a17584.png)

該当のExcelを選択し、[接続]します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/d999da8a-6de1-7ba9-ce6c-c0b2127bd964.png)

次の画面でインポートします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/9b17dbfa-8dc0-0f30-74d6-147a6cc869d9.png)

作成された「データセット」（オレンジ色のデータベースアイコン）からの詳細（コンテクスト・メニュー）から「レポートの作成」をクリックします。

「フィールド」ウィンドウから「Count」、「Name」の順にチェックします。すると、レポートエリアに「集合縦棒グラフ」ビジュアルが表示されます。サイズはPowerPoint同様の操作で整えられます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/68bbba0b-10a2-df80-b068-b37f8dbaf8fa.png)
このビジュアルが選択された状態で、「視覚化」の書式からタイトルを変更したり表示を整えることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/b0de6730-9247-91cc-e2f1-30fe3b004d30.png)

今度はこのビジュアルが選択されている状態で、コピペ（Ctrl + C, Ctrl + P）とショートカットで実行しましょう。そうするとビジュアルを複製されます。「視覚化」ウィンドウから「テーブル」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/b5817d4c-d6f7-e482-eddd-2ef1356e5d1c.png)

テーブルの字のサイズの書式等を整えます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/7339a343-b6c8-2900-3ea9-9115815d83ad.png)

テーブルではCount列の合計行が表示されています。

集合棒グラフの一部をクリックすると、テーブルも連動してフィルタされることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/cee42415-184d-d47b-3a51-f1dd733cae1e.png)

今度はビジュアルが何も選択されていない状態で、「視覚化」ウィンドウから「カード」を選びます。その後、「Name」を選ぶと、Excel野中の最終行が選択されています。「視覚化」ウィンドウの「フィールド」から「カウント」を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/b88985c9-3e45-9303-31d0-248da188a3ed.png)

今は、集合縦棒グラフで、「石川 陽一」という値のものが2件と絞り込まれているので、空白エリアをクリックして、フィルタを解除すると全体の件数が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/b068a421-7bbc-b4bd-4a18-82241093446e.png)

このレポートを「保存」ボタンから保存します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/394a8bd7-5f2b-b6ca-6047-6e1581464390.png)

同様にして並び替え等を行い整えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/419691/cb536724-7ed1-2c81-ce72-3cc7c293ca66.png)

再び編集するときは[編集]ボタンから行います。

## おわりに
　以上、Excelのテーブルに、Power Platformの代表的なサービスであるPower Automate（iPaaS; Integration Platform as a Service）、Power Apps（アプリ開発）、Power BI（BI）でアクセスする基本的な方法でした～。
　本メモの最初のドラフトを書いたのが2020/12頃です。画面等が一部古い可能性があります。対応方法の考え方のみ読み取っていただき、実際の設定等は、最新の内容に読み替えて対応してください。