はじめに
本記事の対象者
- Power AutomateでExcelテーブルの情報を複数条件で抽出したい人
- Excelテーブルの課題一覧の特定担当者にメールで担当課題を通知したい人
本記事の目的
- Power AutomateでExcelテーブの情報を複数条件で抽出し、メールを通知する方法を知る
PowerAutomateでExcelテーブルの情報を複数条件の抽出をする方法
2021年2月から無料版Power Automateを使って今まで貯めてきたノウハウを解説していきます。
自分のノウハウのまとめは、以下の記事にあります。
もしよろしければ、確認してみてください!!
今回の紹介するフロー
今回ご紹介するフローの前に、抽出元であるExceテーブル「l課題一覧」にどのような情報が載っているのかを以下に示します。
赤枠にもしていますが、課題一覧の名前は、タブ「テーブルデザイン」で確認できます。
今回の課題一覧のテーブル名は、「課題管理台帳」になります。
それでは、本題のフローは以下になります。
肝となる部分は、やはり、コネクタ「コントロール」-アクション「条件」で複数条件を設定しているところになります。
そもそも、なぜアクション「表内に存在する行を一覧表示する」のODATAクエリで、複数条件しないのかと思うかもいらっしゃると思います。
アクション「表内に存在する行を一覧表示する」のODATAクエリでは、「and」「or」を使おうとするとエラーで弾かれてしまって設定できませんでした。
そのため、ODATAクエリよりも実行時間がかかりますが、アクション「条件」で設定する方法をご紹介します。
今回のフローにおける仕様のコメント
Excelテーブルの情報を複数条件で抽出する方法の一連の流れを下に書きます。
- ボタンを押したら、フローを実行
- 課題一覧の変数を定義
- 複数条件で抽出した情報を2の変数に格納
- 複数条件で抽出した課題一覧の情報をメールに記載して展開
ちなみに今回の抽出条件は、以下の2つです。
先ほどの画像でいうと下の行が対象になります。
PowerAutomateでExcelテーブルの情報を複数条件の抽出をするフローのコネクタ説明
まずはトリガーから説明していきます。
トリガー(手動でフローをトリガーします):同左
トリガーは、「手動でフローをトリガーします」です。
このコネクタでは、スマホのPowerAutomateアプリにボタンが表示されるので、
そのボタンを押下した任意のタイミングでフローを実行します。
課題一覧が、常に最新状態になっていることや最新情報でなくても定時に送ってほしいのであれば、
コネクタ「スケジュール」で定時に送る設定の方が楽だと思います。
コネクタ1(変数を初期化する):課題一覧の変数定義
1つ目のコネクタは、「変数を初期化する」です。
このコネクタでは、課題一覧の内容をhtmlの表形式にして格納するために定義します。
コネクタ1の設定値については、表にまとめておきます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | 名前 | 課題一覧 |
わかりやすい名前であれば何でも |
2 | 種類 | 文字列 | |
3 | 値 | <table border=”1″> <tr bgcolor =”#999999″> <th valign = “middle” align=”center”>No</th> <th valign = “middle” align=”center”>ステータス</th> <th valign = “middle” align=”center”>タイトル</th> <th valign = “middle” align=”center”>担当者</th> <th valign = “middle” align=”center”>対応期限</th> </tr> |
htmlのヘッダの部分を初期値として入力してあります。
htmlの表はメールで送信後に、メール上見やすくなるので非常に便利です。
htmlの表はどのように書くのかは、下の記事を参考にしてください。
コネクタ2(表内に存在する行を一覧表示):同左
2つ目のコネクタは、「表内に存在する行を一覧表示」です。
このコネクタでは、「今回の紹介するフロー」で記載した通り、テーブル名「課題管理台帳」を
指定して、その情報を取得します。
以下に記入した項目の設定を記載します。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | ファイル | 課題一覧のテーブルが存在する対象ファイルパス |
|
2 | テーブル | 「今回の紹介するフロー」で記載した「課題管理台帳」 |
単純に抽出しているだけなので、細かい設定はございません。
コネクタ3(Apply to each):同左
3つ目のコネクタは、「Apply each」です。
このコネクタでは、複数条件で抽出した行の情報を変数「課題一覧」に格納します。
特段設定みたいなものがあるわけではないので、そのまま次の説明に行きます。
コネクタ3-1(コントロール):アクション「条件」
3-1のコネクタは、「コントロール」-アクション「条件」です。
このコネクタでは、コネクタ2で取得した表の情報から複数条件で判定をします。
今回の複数条件は以下の条件になります。
上記の2つの条件をどちらも満たす時が「はいの場合」になり、
満たさない時が「いいえの場合」になります。
コネクタ3-2(文字列変数に追加):課題一覧の抽出対象行を追加
3-2のコネクタは、「文字列変数に追加)」です。
このコネクタでは、コネクタ3-1で条件を満たした行の情報を変数「課題一覧」に追加格納します。
コネクタ3-2の設定値を表にまとめます。
No | 設定項目名 | 設定値 | 備考 |
---|---|---|---|
1 | 名前 | 課題一覧 | コネクタ1で定義した名前を選択する。 |
2 | 値 |
<tr> |
コネクタ2の情報を動的コンテンツで選択してください。 |
コネクタ4(文字列変数に追加):課題一覧のテーブル終了タグを追加
4のコネクタは、「文字列変数に追加」です。
このコネクタでは、コネクタ1で定義した変数の中で、
htmlの表を作成完了するための終了タグを、変数「課題一覧」に追加します。
コネクタ5(メールの送信 (V2)):同左
5のコネクタは、「メールの送信 (V2)」です。
このコネクタでは、変数「課題位一覧」で作成したhtmlの表を本文に挿入して、相手にメールを送ります。
実行結果
今回の紹介したフローを実行すると以下のようになります。
すべてのコネクタにおいて、正常に終了していることがわかります。
また、送信先に送信されたメールも確認してみます。
「今回の紹介するフロー」で条件に当てはまっている行のみあることがわかります。
これで、フロー自体の処理は、確認終了です!!
項目「対応期限」が日付のはずが、数値になってしまっています。
これは、Excel上で日付をシリアル値で取り扱っているので発生しています。
解決方法の記事を作成したので、下の記事を参考にしてみてください。
上の記事では、シリアル値をどのように文字列の日付にするかを記載しています。
補足情報 今回のフローの想定用途
今回のフローの想定用途は、以下のようなものになると考えています。
・ステータス「完了」「取消」以外のものを取り除いて、担当者に展開
・特定の担当者のみの課題だけ抽出して、担当者に展開
まとめ
まとめに入ります。
業務効率を上げるために提供されているMicrosoft365のツール群で、今回はPowerAutomateでExcelテーブルの情報を複数条件の抽出でする方法を説明しました。
今回のフローの想定用途は、以下のようなものになると考えています。
・ステータス「完了」「取消」以外のものを取り除いて、担当者に展開
・特定の担当者のみの課題だけ抽出して、担当者に展開
課題一覧で対応しているものフィルターをかけたりして、逐一報告するのは面倒くさいと思います。
そんな時に今回の処理を一度でも作ってしまうと手間がだいぶ省かれますので、
ぜひ活用してみください!!
最後まで読んでいただきありがとうございます。
コメント