【PowerAutomate】ExcelからSharePointのリストに一括転記する

スポンサーリンク




作業を自動化する

  • プログラミングは分からないけど自動化したい
  • PowerAutomateの使い方がイマイチ分からない
  • ExcelからSharePointのリストに転記したい

無料ツールでさらにノンプログラミングで自動化ができるならぜひやってみたい!

この記事では、そんな方に向けてExcelからSharePointのリストに転記する方法を4ステップで説明します。

  • フローの動き
  • フロー作成前の準備
  • フローを作る
  • フローを動かす
みずしぶき
みずしぶき

この記事を読めば、Excelのデータ抽出とSharePointリストへの転記ができるようになります。

まだPowerAutomateを使った事が無いという方はこちらの記事を参考にしてください。

PowerAutomateはブラウザで操作するのでインストール無しで利用できます。Windows10ではないMacユーザも自由に使えます。

私がPowerAutomateの勉強で実際に読んだ本を紹介します。

スポンサーリンク

フローの動き

このフローは大きく2つの動きがあります。

  • Excelファイルのデータ取得
  • SharePointのリストにデータ入力

今回はOneDriveにExcelファイルをアップロードしたらフローが自動で動くようにします。
Excelファイルを指定してフローを実行する方法も可能ですが、PowerAutomateへの接続が手間になるので今回はアップロードをトリガーにします。


ファイル名とアップロード先はこちらです。

ファイル名  :20220727_設定内容.xlsx
アップロード先:/10_tool/リスト挿入用

アップロード先は指定した値で固定されますが、ファイル名は何でもOKです。

それではフローを動かしてみます。
ファイルをアップロードしました。

アップロードしたファイルの内容はこちら

  • ExcelTest1
  • 藤井
  • 2022/7/27
20220727_設定内容.xlsx

SharePointのリストに転記されました。

SharePointのリスト「flowtest」

フローの動きは以上です。

SharePointのリストは癖があるので入力が面倒です。
このフローならExcelファイルをアップロードするだけなので楽になります。

さらに、データが2行あるExcelファイルも試してみます。

リストに2行追加されました。

SharePointのリスト「flowtest」

このように、人の操作が必要なのはファイルをアップロードする部分だけです。

みずしぶき
みずしぶき

面倒なSharePointリストへの入力はPowerAutomateで自動化しましょう。

フロー作成前の準備

準備の内容は2つです。

  • Excelファイルの準備
  • OneDriveのフォルダ作成とExcelファイルアップロード

転記したい情報が書かれたExcelファイルを作成します。

テーブル形式にしておきます。

20220727_設定内容.xlsx

OneDriveにフォルダを作ってExcelファイルをアップロードする。

このファイルはフローを作る途中にテーブルのヘッダー読み取りで使用します。
フローが完成したら削除します。

スポンサーリンク

フローを作る

作成するフロー全体です。

使っているアクションは7種類です。

  • ExcelOnline(Business):テーブルの取得
  • 変数         :変数を初期化する
  • コントロール     :Apply to each
  • コントロール     :条件
  • 変数         :変数の設定
  • ExcelOnline(Business):表内に存在する行を一覧表示
  • SharePoint      :項目の作成

使い方は作りながら見ていきましょう。それではフローを作っていきます。
まだ画面を開いていない方はMicrosoftの公式サイトからPowerAutomateを開いてください。

ファイルのアップロードをトリガーにする

画面左にある作成から「自動化したクラウドフロー」を選択。

フロー名を入力して「ファイルが作成されたとき」を選んで作成します。

OneDriveのフォルダ「/10_tool/リスト挿入用」を指定する。

これで「/10_tool/リスト挿入用」にファイルがアップロードされた時にフローが動きます。

Excelのテーブル名を取得

この後に「表内に存在する行を一覧表示」というアクションでExcelからデータを取得します。
その際にテーブル名を指定する必要があるので、ここではExcelのテーブル名を取得して変数に格納します。

新しいステップでExcelOnline(Business)の「テーブルの取得」を選択。

3つ設定します。

場所         :OneDrive for Business
ドキュメントライブラリ:OneDrive
ファイル       :動的なコンテンツの「ファイル識別子」

「ファイル識別子」はアップロードしたファイルを選択する情報です。

ここで取得した情報はテーブルの取得の「value」に保存されます。この後、使用します。

新しいステップで変数の「変数を初期化する」を選択。

変数-変数を初期化する

2か所設定する。

名前:最初のテーブル名
種類:文字列
値 :何も指定しない

この変数「最初のテーブル名」はまだ空の状態です。後でテーブル名を保存する予定です。

新しいステップでコントロールの「Apply to each」を選択。

コントロール-Apply to each

動的なコンテンツにあるテーブルの取得のvalueを選択。

このvalueの中にはExcelのテーブル名を含む様々な情報が入っています。

「Apply to each」の中にあるアクションの追加ボタンから、コントロールの「条件」を選択。

コントロール-条件

3つ設定します。

左:式に Empty(variables(‘最初のテーブル名’))
中:次の値に等しい
右:true

変数「最初のテーブル名」が空だった場合は「はいの場合」に進むという条件です。
「最初のテーブル名」は空の状態で作成したので、最初の1回は必ず「はいの場合」になります。

左は式に直接「Empty(variables(‘最初のテーブル名’))」をコピペで入力してください。
式を作り方が気になる方はこちらを参考にしてください。

式の作成方法
  1. 値の選択欄をクリックして「式」を選択。
  2. 「 Empty( 」と入力する。「 ) 」は自動で出てくる。
  3. ②の状態のまま動的なコンテンツを選択。
  4. 最初のテーブル名を選ぶと、自動で「 variables(‘最初のテーブル名’) 」が入力される。
  5. OKを押す。
式の説明

Empty(variables(‘最初のテーブル名’))

  • Empty ()の中にある文字が空だった場合、trueを返します。 Empty(‘てすと’)は空ではないのでfalseになります。
  • variables(‘最初のテーブル名’) 変数「最初のテーブル名」の値を返します。

「はいの場合」の中にあるアクションの追加から変数の「変数の設定」を選択。

変数-変数の設定

2か所入力します。

名前:最初のテーブル名
値 :動的なコンテンツの「テーブルの取得」にある「名前」

この「名前」にテーブル名が入っています。変数「最初のテーブル名」にテーブル名を入れておきます。

この操作はExcelにあるテーブル名を一覧化して1つ目のテーブル名を取得しています。
PowerAutomateはExcelファイルにテーブルが1つしかなくても、テーブル名を正しく指定しないと動いてくれません。
なのでこの操作は、

テーブルが1つだった場合は1つ目のテーブル名を取得する。
テーブルが3つだった場合でも1つ目のテーブル名を取得する。

という目的があります。
これによって確実にテーブル名を指定する事ができます。
この1つ目のデータのみ取得したい場面はよく発生します。Excelを扱う人は覚えておきましょう。

みずしぶき
みずしぶき

ここは複雑なので、難しければフローの作成に集中してください。何度もフローを作ると分かるようになるのでスルーしてOK。

次はテーブルからデータを取得する方法を説明します。

テーブルのデータを取得

新しいステップからExcelOnline(Business)の「表内に存在する行を一覧表示」を選択。

4か所入力します。

場所  :OneDrive for Business
ドキュメントライブラリ:OneDrive
ファイル:/10_tool/リスト挿入用/20220727_設定内容.xlsx ←後で変更する
テーブル:テーブル1 ←後で変更する

ファイルとテーブルの2つは現時点で仮の設定です。この後のアクション「項目の作成」で必要になります。

このアクションでExcelのデータを取得しました。具体的には「表内に存在する行を一覧表示」のvalueという場所にデータが入っています。

SharePointのリストに入力

この時点でExcelのデータは「表内に存在する行を一覧表示」のvalueの中にあります。
このvalueのデータはAplly to eachで1つずつ取り出します。
取り出すデータをイメージしておいてください。

タイトルusernamedate
TestExcel2今泉2022/7/27←1つめ
TestExcel3森内2022/7/27←2つめ
valueの中身

新しいステップでコントロールの「Apply to each」を選択。

コントロール-Apply to each

動的なコンテンツの「表内に存在する行を一覧表示」にある「value」を選択。
最初に作ったテーブルの取得の「value」ではないので注意。

アクションの追加でSharePointの「項目の作成」を選択。

5つ設定します。

サイトのアドレス:https://xxxx.sharepoint.com/sites/tttt
リスト名    :flowtest
Title      :動的なコンテンツの「タイトル」
username   :動的なコンテンツの「username」
date      :式に addDays(‘1899/12/30’,int(items(‘Apply_to_each_2’)?[‘date’]))

リストを開いた時のURLの赤字の部分をサイトのアドレスへ貼り付けます。
https://xxxx.sharepoint.com/sites/tttt/Lists/List2/AllItems.aspx

dateは動的なコンテンツの「date」をそのまま指定すると、Excelのシリアル日付になってしまいます。
このシリアル日付を式によって日付形式に修正します。

式の説明

addDays(‘1899/12/30’,int(items(‘Apply_to_each_2’)?[‘date’]))

  • addDays 1つめの引数に日付を指定、2つめの引数に日数を指定して日数を加算します。addDays(‘2022/1/1’,10)の場合は2022/1/11になります。
  • int ()の中にある文字を数値に変換します。 int(’10’)だと10になります。
  • items(‘Apply_to_each_2’)?[‘date’] Apply_to_each_2で指定したデータのdateの値を返します。

表の情報を修正

1つ前の「項目の作成」が終わればダミーファイルの読み込みは不要になります。

「表内に存在する行を一覧表示」を選択してファイルとテーブルの2カ所を修正します。

修正前の値

修正後の値

ファイル:動的なコンテンツの「ファイル識別子」
テーブル:動的なコンテンツの「最初のテーブル名」

保存を押してフローの完成です。

完成したフローはこちら。

事前準備でアップロードしたファイルを削除します。

フローを動かす

処理前のリストがこちら。

SharePointのリスト「flowtest」

ファイルをアップロードします。

アップロードしたファイルの内容。

20220727_設定内容.xlsx

SharePointのリストに転記されました。

SharePointのリスト「flowtest」
スポンサーリンク

まとめ

ExcelからSharePointのリストに転記する方法を4ステップで説明しました。

  • フローの動き
  • フロー作成前の準備
  • フローを作る
  • フローを動かす

Excelは「表内の行を一覧表示」でデータを取得する。SharePointのリストは「項目の作成」でデータを入力する。この2つを覚えておきましょう。

PowerAutomateの記事まとめ
まだ試してないアクションがあれば見ておきましょう。
初心者向け
【初心者向け】PowerAutomateの使い方。無料で誰でも使えます。
基本的なアクション
【PowerAutomate】メールの添付ファイルをOneDriveへ保存する。
【PowerAutomate】Excelのデータをメールで送信する。
【PowerAutomate】メールを受信したらExcelにデータを入力する。
アクションの応用
【PowerAutomate】第1~5○曜日の日付を求める。
【PowerAutomate】メール本文から名前を抽出する。文字列抽出のキホン。
【PowerAutomate】ソートするフローを作る。配列の並べ替え。
【PowerAutomate】SharePointのリストから列と行をフィルターして表にする。
【PowerAutomate】ExcelからSharePointのリストに一括転記する
【PowerAutomate】SharePointのテキストファイルに改行を付けてメール送信
関数・アクション
【PowerAutomate】日付の関数まとめ。月末月初やExcelシリアル値変換など。
【PowerAutomate】Apply to eachの使い方。勝手に出てくる原因や遅い時の高速化など!

今の勉強法に満足していますか?
やりたい事はネットで調べてなんとか対処しているという方が多いと思います。

私も元々はネットから情報を得ていましたが、知識が少な調べる事ばかりで作業が進まなく悩んでいました。一度専門書を買ってみると勉強に集中できネットより遥かに理解が早かったと感じました。

とはいっても何冊も本を買うとお金も場所も取ります。そこでAmazonが提供するKindle Unlimitedという読み放題のサービス。PCやスマホどちらでも使え、月額980円で毎月1~2冊読めば元がとれたので本代の節約になりました。

>>Kindle Unlimitedへ登録する

確かにネットの情報量は多いのでほしい情報は見つかります。でも、ネットで自分の求めている情報を探すのは時間がかかります。気になる事を都度調べるのは効率悪くないですか?

ではどうしたらいいのでしょうか。

それは基礎知識を学ぶ事です。
専門書は初心者向けから上級者向けまでレベル別で出版されているので、求めている内容がそこにありました。

Kindle unlimitedはラインナップが勝手に変わるという予測できない点はありますが、読みたくなった今すぐに読める点が私にはドハマりでした。

初回30日無料なので今すぐに読みたい本がある方はお試しでも利用できます。Kindle Unlimitedは200万冊以上の本が読めるそうです!

ネットの検索時間から解放され、本来の目的に集中しましょう。

\30日間無料/

タイトルとURLをコピーしました