こんにちは。アーティサン株式会社の小刀稱(ことね)です。 「Power AutomateでExcelをSharePointリストにインポートしたい時に考えること」シリーズの第9回です。
本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。 また、作成の際に学んだ点や躓いた点を中心に紹介いたします。
Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。
前回は、動的に取得したファイルIDやテーブルIDを用いてExcelデータを取得し、 SharePointリストへインポートするようにフローを作り込みました。 また、トリガーアクションやトリガー条件を修正することで、 特定のファイル名が作成、または変更された場合に、フローが自動起動するように設定しました。
第8回目の内容はこちらを参照ください。
Power AutomateでExcelをSharePointリストにインポートしたい時に考えること(第8回)
今回は、インポートする表データの行数が多い場合の対処法についてお伝えします。
インポートするExcelデータ
前回まで使用していた表データは10行でしたが、今回は500行にしてみました。
フローの実行
ではフローを実行しましょう。
ドキュメントライブラリに“test.xlsx”を保存します。
するとフローが自動起動し、SharePointリストにデータが挿入されました。
実行結果を見ると、なぜか256行しかインポートされていません。
これは表内に存在する行を一覧表示アクションは、ブログ執筆(2021年9月)時点、標準では256行分の行データしか取得することができないからです。
この制限を踏まえて、256行より大きいデータを取得する際には、少し工夫が必要となります。
256行より大きい表データがある場合の対応策
対応策としては、以下2パターンがあります。
改ページのしきい値を変更し、取得できる行数を拡張する。
Do Untilアクションを用いて256行ずつ取得し、最終行に達するまで繰り返す。
各パターンのメリット・デメリットを以下にまとめました。
メリット | デメリット | |
---|---|---|
改ページ |
フローの修正範囲が小さい (表内に存在する行を一覧表示アクションの設定変更のみで対応可能) |
取得するExcelデータの行数が不明な場合は対応不可 (改ページで設定したしきい値以上を取得できない) |
「Do Until」アクション | 取得するExcelデータの行数が不明の場合も対応可 | フローの修正範囲が大きい (変数の設定やループ処理を追加する必要あり) |
改ページのしきい値を変更する場合は、フローの修正範囲が小さいため、お手軽に実装できます。 しかし、設定したしきい値以上の行数を取得できません。
「256行では少ないけど、3,000行あれば問題ない」というような場合は、この方法で対応可能ですが、プランによっては5,000が改ページの制限値ですので、行数が多い場合は、すべての行を取得できない可能性があります。
Do Untilアクションを用いる場合は、取得するExcelデータの行数が不明である場合も対応可能です。 しかし、変数の設定やループ処理を追加する必要があるため、フローが複雑になります。
「取得する行数が不明」な場合は、この方法で対応します。
以下にそれぞれの設定方法について説明します。
設定方法についてはどちらのパターンも説明しますが、今回はパターン2にて実装していきます。
-
改ページのしきい値を変更し、取得できる行数を拡張する。
表内に存在する行を一覧表示アクションの設定を開き、改ページをオンにします。 その後、しきい値項目を任意の値に更新します。
-
「Do Until」アクションを用いて256行ずつ取得し、最終行に達するまで繰り返す。
Do Untilアクションを用いて、1回目は1~256行目の値を取得、2回目は257~512行目を取得・・・というイメージでループを回していきます。
ロジックは以下のとおりです。
フローの修正は以下手順で行います。
-
変数の初期化
変数を初期化するアクションでRowCount、SkipCountの初期値を設定してください。
「Do Until」アクションの作成
Do untilアクションを作成し、このアクションの中に表内に存在する行を一覧表示アクションとApply to eachアクションを移動させてください。
-
読み取り開始行の設定
表内に存在する行を一覧表示アクション下部の詳細オプションを表示するをクリックし、スキップ数項目にSkipCountを設定してください。これにより、1回目は1行目から読み取り開始(0行スキップ)、2回目は257行目から読み取り開始(256行スキップ)という設定になります。
変数の更新
Apply to eachアクション終了後、RowCountとSkipCountの値を更新します。
RowCountで設定している式は以下です。
これは、表内に存在する行を一覧表示アクションで取得したExcelデータの行数を表しています。length(outputs(‘表内に存在する行を一覧表示’)?[‘body/value’])
上記手順で修正したフローは以下のとおりです。
フローの実行
ではフローを再度実行しましょう。
見事全ての行がインポートされました!
本日はここまで。
今回はExcelの表データが256行より多く存在する場合の対処法についてお伝えしました。
次回は、表データの中に想定とは異なる形式の値がある場合の対処法についてお伝えします。
ここまで読んでいただき、ありがとうございました。
【このシリーズの過去回一覧】
-
【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回】
煩雑なフローをアクションで可読性向上!
【こちらも合わせて読みたい】
小刀稱知哉
大分県出身(温泉大好き)、現在は東京都在住
1990年生まれ
30才でメーカーの技術営業からIT業界にジョブチェンジ!!!
趣味は読書
主にMicrosoftのローコード(SharePoint・Power Platform)に関するに関する営業活動や設計、開発などを担当しております!
持ってる資格はPL-200/PL-300/PL-400/PL-600/MS-700/AZ-104/AZ-305/SC-200