取引先ごとの案件情報や在庫の一覧をExcelで管理していて、それを別途SharePointリストにも登録し直している。
そんな二重入力が社内のどこかに残っていませんか。
Excelは使い慣れた画面で入力しやすい一方、SharePointリストは検索やフィルター、他の担当者との同時編集、他システムとの連携に強く、両方を使い分けたい場面は少なくありません。
ただし手作業で転記していると、件数が増えるほど入力ミスや登録漏れが起きやすくなります。
Power AutomateでExcelのデータをSharePointリストへ自動登録できれば、この二重入力そのものをなくせるはずです。
この記事では、登録フローを作る前に必要な準備と、実際の手順、件数が多いときに気をつけたい実行時間の注意点を整理しています。
どんなときに使うか
Excelのデータを自動でSharePointリストへ登録する仕組みが役立つのは、元データがExcelにあり続ける事情がある場面です。
たとえば取引先から届く発注一覧や見積依頼をExcelで受け取っていて、社内では検索性の高いSharePointリストで案件を追いたい場合が典型です。
店舗や部署ごとにバラバラに管理していたExcelを、月次で1本のリストへ集約したいという相談も多くあります。
現場の担当者がExcelで入力を続けられる状態を保ちながら、閲覧側だけリスト化して検索や絞り込みをしやすくしたいというニーズも多く見られます。
入力担当と閲覧担当が別で、双方に使い慣れたツールを維持したいときに向いている構成です。
事前準備(テーブル化・列対応)
手順に入る前に、Excel側とSharePoint側でそれぞれ準備しておくことがあります。
この準備を飛ばすと、フロー作成の途中で行き詰まりやすくなるので注意してください。
Excelのデータをテーブルとして書式設定する
Power Automateの「表内に存在する行を一覧表示」アクションは、Excelの単なるセル範囲ではなく、テーブルとして書式設定されたオブジェクトだけを対象にしています。
データ範囲を選択し、挿入タブから「テーブル」を作成しておく必要があります。
すでに範囲として運用しているExcelがある場合は、この段階でテーブル化を済ませておくと安心です。
SharePointリスト側に列を用意する
登録先のSharePointリストに、Excel側の項目に対応する列をあらかじめ作成しておきます。
列名を完全に一致させる必要はありませんが、テキスト・数値・日付・選択肢といったデータの型はExcel側の内容と合わせておくと、後の手順で値を差し込むときに迷いません。
日付や金額のような列は特に、型が合っていないと登録時にエラーになりやすい箇所です。
Excelのデータを登録するフローを作る
テーブル化と列の準備ができたら、実際にフローを組みます。
基本の構成はシンプルで、Excelから行を取得して、1件ずつSharePointリストへ書き込む流れです。
Step1. トリガーを設定する
手動で実行したい場合は「手動でフローをトリガーします」を、決まったタイミングで自動実行したい場合は「Recurrence」を選びます。
毎日届くExcelを集約する運用であれば、後者で朝一番に実行させておくのが定番のやり方です。
Step2. Excelから行を取得する
Excel Online(Business)コネクタの「表内に存在する行を一覧表示」アクションを追加し、対象のファイルとテーブルを指定します。
このアクションを実行すると、テーブルの各行が配列として取得される仕組みです。
Step3. Apply to eachでSharePointリストに登録する
「表内に存在する行を一覧表示」の出力に対して自動的にApply to eachが付き、1行ずつの繰り返し処理になります。
その中にSharePointコネクタの「項目の作成」アクションを置き、サイトとリストを指定してから、各列にExcelの値を差し込みます。
列名がExcelとリストで違っていても、この画面で個別にマッピングするだけなので問題ありません。
Step4. 少数件でテストしてから本実行する
いきなり全件で実行せず、まずはExcel側を数行だけに絞ったコピーを用意してテストします。
型の不一致や必須項目の入力漏れがあると、この段階でエラーとして表示されるため、原因を1件ずつ潰してから本番データで実行します。
ここまでで、Excelのデータをテーブル化してSharePointリストへ登録する基本のフローが完成です。
件数が多いときの注意(実行時間)
Apply to eachは既定で1件ずつ順番に処理する設定になっており、少ない件数であれば数十秒から数分で終わります。
ただし件数が増えると、SharePoint側の書き込み負荷や一時的な制限によって、思ったより時間がかかることがあります。
件数ごとの目安と対策を整理すると、次のとおりです。
| 件数の目安 | 処理時間の目安 | 対応の考え方 |
|---|---|---|
| 100件未満 | 数十秒〜1分程度 | そのまま実行して問題ない |
| 100〜1,000件 | 数分程度 | Apply to eachの同時実行(並列処理)を有効にすると短縮できる場合がある |
| 1,000件超 | 数十分以上かかることがある | 日付や部署などでExcel側を分割し、複数回に分けて実行する |
数千件規模を一度に登録する運用が続く場合は、SharePointリスト自体の表示速度が落ちる「リストのしきい値」の問題も別途出てきます。
件数が今後も増える見込みがあるなら、リスト側にインデックス列を設定しておくと後々の検索が重くなりにくくなります。
つまずきやすいポイント
登録フローでよく相談を受けるのが、同じExcelをもう一度実行したときの重複登録です。
「項目の作成」アクションは実行のたびに新しい行を追加する仕組みのため、条件分岐で登録済みかどうかを確認する処理を入れておかないと、再実行のたびに同じ内容が積み重なっていきます。
日付や数値の型が合っていないことによるエラーも頻発する箇所です。
Excel側が文字列として保存されている日付を、SharePointリストの日付列にそのまま差し込むとエラーになることがあり、その場合はフロー内で日付の書式を変換してから渡す必要があります。
Excelへの転記そのものを自動化したい場合は、フォームの回答をExcelへ転記する方法も参考になります。

どの業務から自動化に着手するかを先に整理しておきたい場合は、こちらの記事も確認しておくと迷いが減ります。

ExcelからSharePointリストへの登録でお困りではありませんか?
「Excelとリストの列がうまく対応しない」「件数が多いと実行に時間がかかる」「登録がエラーで止まってしまう」
少しでもお心当たりがあれば、お気軽にご相談ください。
現在、Power Automateの業務自動化に関するお悩みをお伺いする 無料の個別相談 を実施しています。
よくある質問
Q. Excelの範囲をテーブル化せずに、そのままフローで使えますか?
使えません。
「表内に存在する行を一覧表示」アクションはExcelのテーブルオブジェクトを対象にしているため、範囲のままだと選択肢に表示されず、事前に挿入タブからテーブルを作成しておく必要があります。
Q. Excelの列名とSharePointリストの列名は一致させる必要がありますか?
一致していなくても登録できます。
「項目の作成」アクションでは各列を個別にマッピングするため、名前が違っても中身を正しく対応付ければ問題ありません。
ただし運用担当者が迷わないよう、近い名前に揃えておくと後の保守がしやすくなります。
Q. 登録済みのデータをもう一度実行すると、重複登録されますか?
重複してしまいます。
同じExcelデータでフローを再実行すると、同じ内容がもう一度リストに追加される仕組みです。
再実行を想定する運用にする場合は、登録済みかどうかを事前に確認する条件分岐を組み込んでおく必要があります。