業務効率化

PowerAutomate:エクセル台帳から自動採番・転記・通知

PowerAutomateによる、フォームズ回答を元に指定エクセル台帳から採番し、転記と通知を自動化するフロー例です。

記事の内容

・挙動

・コード

・ポイント機能

・挙動

全体図

指定のフォームを受け取り、その値に基づいて、指定エクセル台帳の番号列最終行を取得し、+1を加えています。

今回の台帳の番号は、下記のようなあらかじめ番号が振られたものです。

上記であれば、指定フォームが回答されると、最終行にあるABC2429が取得され、フォームズの回答に基づいて同じ行に内容が転記されます。

その取得値を変数に入れ、メールで通知することで、採番したい人が自動で採番し、台帳更新と採番通知を受け取ることが可能です。

すでに採番用の番号が列に記載されている台帳を対象にして採番通知したい場合、今回のようにある列にインデックス番号をNo列として追加することで実行可能です。

・ポイント機能

やりたいことは、最新の連番取得及び、フォームズ回答に基づいた最終行の更新です。

これ等を行うためには、最終行の位置取得とキーとなる連番取得が必要です。

・最終行の位置取得と指定列値取得

・フォームズ回答に基づいた最終行の更新

最終行の位置取得と指定列値取得

今回の台帳は連番がすでに記載されています。この場合連番では最終行判定できないため、値によって加算表示されるNo列を元にして最終行判定しています。

No列は関数で日付が記入されると上のNo+1された値が表示される

そのために必要なメソッドは、指定テーブルの列をリスト化するメソッドです。ここではフィルタークエリにて条件を指定します。

上記のフィルタークエリの意味

フィルタークエリ:No eq ""
並べ替え順:No desc
上から順に取得:1
=No列 が空でないものを No の降順(大きい順)で並べて、一番上の1件だけ取得

これにより、No列で表示されている大きい値順に並べ、上から順に取得を1とすることで視覚的に最終行となっているNo列の行の一つ下の行を取得することができます。

No列で視覚的に最終行の下行(黄色)が取得される

No列が空欄ではないもので降順に並べれば、No列最大値の行の下セル(取得したい最新の行)は取得できないように思いますが、フィルタークエリとワークシート関数による動きで最新の行が取得できる流れになっています。

フィルタークエリでの記載方法

他の式メソッドとは異なります。これはOData形式の文法が使われており、他のメソッドとは異なるからです。このようにPowerautomateでは下記の2種類の関数が使用されます。

項目文法
①Power Automate の「式」(変数操作で使う関数) WDL(Workflow Definition Language):@ で始まる
関数名(引数1, 引数2) の形式
②フィルタークエリ(SharePoint / Dataverse / Excel Online などの データ取得 API の検索条件) OData(Open Data Protocol): eq, gt 等@や()不使用

行が取得できれば、必要なのはその行の内の連番列を取得することです。

このためには、変数の作成(Compose)で上記で取得した値を元に最新番号を取得します。その際の入力には、下記の関数を使用し、上記の取得した行の内の指定の列を取得します。

上から順に取得

これもODataの文法の内、 $top =「取得件数」を表します。これは上位何件を取得するか指定する値です。

今回1を指定していますがこれは、
1 → 上位1件だけ取得
つまり、フィルタークエリや並べ替え順で条件を絞った後、その結果の 最初の1件だけ を返す設定です。

下記のような使い方ができます。
5 → 上位5件を取得
10 → 上位10件を取得
100 → 上位100件を取得
■よくある使い方
●最新の1件だけ取得したい
コード
並べ替え順:Created desc
上から順に取得:1
●特定条件に一致する最初の5件だけ欲しい
コード
フィルタークエリ:Status eq 'Active'
上から順に取得:5

フォームズ回答に基づいた最終行の更新

取得した採番に基づいて台帳の行を更新します。行の更新アクションを使用し、キー列とキー値を指定します。

末尾のパラメータが発行日となっていますが、本来は台帳上のタイトルが表示され今回であれば日付や連番が表示されます。

変数には最新の番号が記載されています。この値とその値が記載された列を指定し、一致するセルがあればその行が更新される対象となるロジックです。

今回であれば下記台帳からまず、ABC2429が取得されます。

それをキー値に、キー列に「連番」を指定し、キー値とあう最終行の黄色行が操作可能になります。

指定した行に対して値を転記する場合、詳細パラメータから指定します。「すべて表示」をすると指定した台帳のタイトル列がテキストボックスとともに表示されます。

これ等に値を入れることで、上記の最新番号と一致する行にフォームズの回答等の値を転記することができます。

上記は発行日と記載ありますが、指定台帳の列値によって変化します。

上記で実行することで、取得した最終行の指定した列に対して、テキストを転記することができます。

動的な変数からフロー開始時のフォームズ回答を指定することで採番通知および、申請者自身に値を入力させ、台帳管理も自動化できます。

-業務効率化