技術情報ブログ
Power Platform
2021.09.10

【Power AutomateでExcelをSharePointリストにインポートしたい時に考えること 第9回】Excel表データの行数が多い場合の対処法

【Power AutomateでExcelをSharePointリストにインポートしたい時に考えること 第9回】Excel表データの行数が多い場合の対処法

こんにちは。アーティサン株式会社の小刀稱(ことね)です。 「Power AutomateでExcelをSharePointリストにインポートしたい時に考えること」シリーズの第9回です。

本シリーズでは、私が実際にPower Automateを用いて、「ExcelをSharePointリストにインポートする」フローを作成していきます。 また、作成の際に学んだ点や躓いた点を中心に紹介いたします。

Power Automateでどんな事ができるのか知りたい、実際の作成方法を知りたい、という方に向けた記事です。

前回は、動的に取得したファイルIDやテーブルIDを用いてExcelデータを取得し、 SharePointリストへインポートするようにフローを作り込みました。 また、トリガーアクショントリガー条件を修正することで、 特定のファイル名が作成、または変更された場合に、フローが自動起動するように設定しました。

第8回目の内容はこちらを参照ください。

Power AutomateでExcelをSharePointリストにインポートしたい時に考えること(第8回)

今回は、インポートする表データの行数が多い場合の対処法についてお伝えします。

 

インポートするExcelデータ

前回まで使用していた表データは10行でしたが、今回は500行にしてみました。

Excelデータ

 

フローの実行

ではフローを実行しましょう。

ドキュメントライブラリに“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にて実装していきます。

  • 改ページのしきい値を変更し、取得できる行数を拡張する。

    表内に存在する行を一覧表示アクションの設定を開き、改ページをオンにします。 その後、しきい値項目を任意の値に更新します。

    pagenation
  • 「Do Until」アクションを用いて256行ずつ取得し、最終行に達するまで繰り返す。

    Do Untilアクションを用いて、1回目は1~256行目の値を取得、2回目は257~512行目を取得・・・というイメージでループを回していきます。
    ロジックは以下のとおりです。

    logic

フローの修正は以下手順で行います。

  • 変数の初期化

    変数を初期化するアクションで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’])

    変数の更新

上記手順で修正したフローは以下のとおりです。

フロー

 

フローの実行

ではフローを再度実行しましょう。

結果-2

見事全ての行がインポートされました!

 

本日はここまで。

今回はExcelの表データが256行より多く存在する場合の対処法についてお伝えしました。

次回は、表データの中に想定とは異なる形式の値がある場合の対処法についてお伝えします。

ここまで読んでいただき、ありがとうございました。

 

 

【このシリーズの過去回一覧】

 

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:小刀稱知哉

小刀稱知哉

大分県出身(温泉大好き♥♥)、現在は東京都在住

1990年4月9日生まれ

30才にしてメーカーの技術営業からIT業界にジョブチェンジ!!!

趣味は読書

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当しております!

シェアする
記事カテゴリ
最新記事
2024.04.17

Power Apps・Power Automateの勉強方法(1)

2024.04.03

非エンジニア【(元)自治体職員】が半年間ローコード開発をしてみたら

2024.03.27

Power Automateのベストプラクティス・アンチパターン(5)【Apply to each×コンカレンシー×変数の設定はNG】

2024.03.20

Power Apps×Teams:Teams上からPower Appsを実行する方法

2024.03.13

Power Apps:SharePointリストと連携したカレンダーアプリを自作してみよう

モデル駆動型アプリPower AppsPower PlatformSharePointExcelPower AutomateC#attributevalidationローコードAngularAccessInfoPathMatTableAngular Materialデータ構造SortByColumns関数TypeScriptHTMLEF CoreマイグレーションFramework CoreAttribute directivesO/Rマッパーazure sql databaseCase式HTTP RequestCSSxUnit.Net Core 3.1VSCode.Net Core Test ExplorerDataverse for Teamsitem関数Google MapsMarker ClustererRANK()関数Dynamics 365 SalesMicrosoft TranslatorマーカークラスタリングライブラリtailwindcssマルチテナントドロップダウンメニューBreakpointObserverメディアクエリスマホPCレスポンシブ入門初心者中級者キャンバスアプリDatePickerDropdownviewビューアクセス制限承認リマインドSetForAllUpdateContextロードマップ技術It情報技術メッセージIDメールfirst()関数nest入れ子動的リストcollectionコレクション複数の添付ファイル承認フローformエクスポートインポートカスタマイズcomponentダイアログコンポーネントdialogTips新機能変数検索Microsoft 365グループセキュリティグループ送信元メールの送信差出人インスタントクラウドフロー自動化したクラウドフロー委任VBAエラーエクセルerror復元restorePower BI個人列ユーザー列SharePoint Onlineリスト非表示アプリ[市民開発者構築自動化したクラウド フローフローの種類インスタント クラウド フロースケジュール済みクラウド フローレスポンシブ レイアウトresponsive layoutデータ行の制限引き継ぎ退職所有者を変更異動LoopMicrosoftdesignJSONデザインtemplateテンプレート運用選択肢列参照列ChatGPTOpenAIオープンAIチャットGPTgalleryギャラリースクロールコンテナショートカットキーshortcut keyconcat関数文字制限フロー実行開発環境環境本番環境ライセンス環境構築手順pipelineCI/CDパイプラインDevOpsMicrosoft 365簡易在庫管理時間外通知ファイルフィルター クエリドキュメント ライブラリfilter querysortソートmultiple item複数項目シェアポイント便利機能カレンダーCalendarTeamsローコード開発非エンジニア体験談勉強内製化
PageTop
ページトップに戻る