はじめに
社内イベントの出欠確認フォームをMicrosoft Formsで作成したときの話です。
氏名、所属組織、参加可否の項目をユーザーに入力してもらうよう依頼したのですが、
回答結果(Excel)を確認すると、入力にバラつきがあり、Excelでの集計が困難な状態になっていました。
具体例
- 氏名:山田太郎、佐藤、鈴木 次郎
- 所属組織:部門名だけ、正式名称、略称
反省点
Formsは簡単にフォームを作れる反面、入力形式を厳密に制御しないと、回答結果に統一性がなくなります。
実際、Excelで集計する際に「氏名のスペース」や「部署名の略称」などが障害になりました。
解決策
自分で手動修正するのも、再度登録依頼をするのも避けたかったので、
Power Automateでデータを正規化する仕組みを作りました。
Power Automateの作成内容
Microsoft Formsではメールアドレスが自動で登録されるため、
そのメールアドレスをキーに氏名(表示名)と所属組織を取得し、Excelに反映するフローを構築しました。
フロー概要
-
変数を初期化
- 変数
IDを作成(初期値は 1)
- 変数
-
行の取得
- 変数
IDと Excel の ID 列を比較し、一致するレコードを取得
- 変数
-
ユーザープロフィールの取得
- ステップ2で取得したレコードのメールアドレスをキーに、その他情報(表示名、組織情報)を取得
-
行の更新
- ステップ3で取得した情報をレコードに追加
-
変数の値を増やす
- 変数
IDに+1する
- 変数
ステップ3~5はループ処理で実行しています。
本来であれば、Excelの最後尾を停止条件にするのがスマートですが、
今回は「一度しか更新しないだろう」という前提で、IDを直接指定しました。
3. PowerAppsで表示
元となるデータがそろったので、PowerAppsの方を作成していきます。
やったことは以下の通りです。
-
Excelをテーブル化
- 変数
IDを作成(初期値は 1)
- 変数
-
行の取得
- 変数
IDと Excel の ID 列を比較し、一致するレコードを取得
- 変数
-
ユーザープロフィールの取得
- ステップ2で取得したレコードのメールアドレスをキーに、その他情報(表示名、役職、組織情報)を取得
-
行の更新
- ステップ3で取得した情報をレコードに追加
-
変数の値を増やす
- 変数
IDに+1する
- 変数
結果
手動修正ゼロで無事データ整形に成功しました…!
実行時間もレコード100件に対して約3分で処理が完了し、手作業より圧倒的に効率的でした。
今回は自分のミスを取り返す形でPower Automateを使いましたが、
「活Excel」という発想でMicrosoft 365のサービスを組み合わせると、業務効率化が大きく進むと実感しました。


