こんにちは。アーティサン株式会社の小刀稱(ことね)です。
本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。また、作成の際に学んだ点や躓いた点を中心に紹介いたします。
この連載を最後まで見ていただくと、ExcelデータをSharePointリストへ自動的に追加するPower Automateを作成することができるようになります。
Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。
前回はExcelのデータをSharePointにインポートする手法と、それぞれのメリット・デメリットについて紹介しました。
第1回目の内容はこちらを参照ください。
Power AutomateでExcelデータをSharePointにインポートするために考えること(第1回)
今回からは、早速Power Automateを用いてフローを作成していきます。
Power AutomateでインポートするExcelデータ
Power AutomateでインポートするExcelデータを以下に示します。
※SharePointリストの各列もExcelと同様に定義しておきます。
- ファイル名
- test.xlsx
- テーブル名
- tableTest
- 列名(形式)
String(文字列)
Number(数値)
Date(日付、yyyy/MM/dd)
DateTime(日付、yyyy/MM/dd hh:mm)

Excelデータのテーブル化
Power Automateでは、Excelデータはテーブルしか扱うことができません。
よって、Excelを事前にテーブル化させておく必要があります。
ちなみに、Power Automateに限らず、テーブル化されていないデータは、プログラムで扱う際に開発難易度が跳ね上がってしまいます。
これからの時代、あらゆるデータはプログラムで利用されることを前提として考え、Excelにデータを入力する時点で、テーブル化できるように整理しておくことをお勧めします。
Excelをテーブル化する手順は以下です。
- テーブル化したい範囲を選択します。
- ホーム → テーブルとして書式設定 の中から任意のスタイルを選択 します。
- ポップアップ画面(テーブルの作成)のOKを選択します。
- テーブルデザイン → テーブル名を「testTable」に変更します。
Power Automateでフローを作成する
準備が整いましたので、早速Power Automateを用いてフローを作成していきましょう。
Power AutomateでExcelデータを扱う際には、「Excel Online(Business)コネクター」を利用します。
また、Excel Online(Business)コネクターに含まれる「表内に存在する行を一覧表示」アクションを用いることで、指定したテーブルの値を取得します。

「表内に存在する行を一覧表示」アクションを見ると、「場所」「ドキュメントライブラリ」「ファイル」「テーブル」という4つの項目を設定する必要がありそうです。
そこでSharePointのドキュメントライブラリ(名称:Excelファイル)を作成し、Excelデータを保存しました。その後、以下のように値を設定しました。

いずれの項目も、右端のアイコンをクリックすると候補が表示されるため、設定は非常に簡単です。
Excelのテーブルデータを取得できたので、続いてSharePointリストにインポートするためのアクションを追加します。
Power AutomateでSharePointを扱う際には、「SharePointコネクター」を利用します。また、SharePointコネクター内の「項目の作成」アクションを用いることで、取得したテーブルデータをSharePointリストに追加します。
設定した値は以下です。

SharePointリストの各列に合わせて、データをマッピングしました。
Number列の形式は数値ですが、「表内に存在する行を一覧表示」アクションで取得すると、文字列として認識されます。
int()関数を用いて文字列から数値へキャストしています。
式:int(items(‘Apply_to_each’)?[‘Number’])
また、「項目の作成」アクションにてデータをマッピングすると、自動的に「Apply to each」アクションで囲われたと思います。
これは、「表内に存在する行を一覧表示」アクションで、複数行のデータを取得したためです。
「Apply to each」アクションにて、取得したデータ行数分の処理を実行します。(テーブルデータが10行分ある場合は、10回「項目の作成」アクションが実行される。)
はい、フローが完成しました!
今回作成したフローの全体像は以下です。少ないアクション数にて作成することができました。

Power Automateの実行
それでは作成したフローを実行してみましょう。
保存したExcelファイルの横にある三点リーダーから自動化→作成したフロー名をクリックすることで実行できます。

上記手順にてフローを実行してみましたが、SharePointリストには何もインポートされていませんでした。
そこで、フローの実行履歴を確認すると「失敗」の文字が・・・

内容を確認すると、SharePointリストとExcelデータのDate列の形式が異なるため発生しているようです。

少し長くなってしまいましたので、今回はここまでにしたいと思います。
次回は発生したエラーの内容とその対処方法についてお伝えしていきます。
ここまで読んでいただき、ありがとうございました。
【このシリーズの過去回一覧】
-
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第1回】
4つのシーンごとに手法を比較、その最適解とは? -
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第2回】
フロー作成でエラー発生! -
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第3回】
フロー実行時のエラー内容と対処方法 -
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第4回】
タイムゾーン差異と対処法 -
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第5回】
ExcelファイルIDを動的取得 -
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第6回】
インポートするためのドライブIDを取得する方法 -
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第7回】
ファイルIDとテーブルIDを動的取得 -
【Power AutomateでExcelデータをSharePointにインポートするために考えること 第8回】
トリガーの条件の指定方法 -
【Power AutomateでExcelをSharePointリストにインポートしたい時に考えること 第9回】
Excel表データの行数が多い場合の対処法 -
【Power AutomateでExcelをSharePointリストにインポートしたい時に考えること 第10回】
インポートがうまくいかない!原因と対処法は? -
【Power AutomateでExcelをSharePointリストにインポートしたい時に考えること 第11回】
煩雑なフローをアクションで可読性向上!
【こちらも合わせて読みたい】
X-SP | SharePoint デザイン・機能拡張サービス
デザイン×機能を兼ね備えたSharePointを提供いたします。
SharePointの利便性を向上し、操作性と視認性を兼ね備えたデザインでユーザーの業務効率化・ストレス低減を提供します。
内製化支援サービス | Power Platform(Power Apps・Power Automate)
Power Platform(Power Apps・Power Automate)開発や運用をスムーズに内製できるよう支援いたします。
DX人材育成プログラム | Power Apps・Power Automte 教育
Microsoft社が提供するローコード技術であるPower Platformを用いて、社内のDX化を推進するための人材を育成いたします。
Power Apps/Power Automateアプリ開発・導入支援サービス
Microsoft社が提供するPower Apps / Power Automateの導入支援として、高度なアプリも最速で作れる業務アプリ作成支援サービスを提供いたします。
SharePointモダン化コンサルティングサービス
従来のSharePoint から移行・モダン化したい方に向けて、事前調査からサイト作成・活用支援までトータルなコンサルティング・技術支援を提供いたします。

小刀稱知哉
大分県出身(温泉大好き♥♥)、現在は東京都在住
1990年4月9日生まれ
30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!