Power Apps のデータソースでExcelの評価をちょっとだけ見直した件

一昔前まで Power Apps のデータソースに Excel を使うのはタブー視されていましたが、ここ最近「Excelも場合によってはありっちゃあり」と見直しました。

本格的な開発にはやっぱりリスト/Dataverse一択になってしまうのですが、どうして Excel への評価を見直すことになったか紹介します。

Excelの進化

Excel を Power Apps のデータソースとして使うのは絶対に避けなければいけない理由が、過去にはいくつか存在しました。

しかし、2021年4月以降の数回のアップデートにより、Excelは進化を遂げています。

委任が一切できなかった▶一部は委任できるようになっている

Excel をデータソースにすると一切の関数が委任不可でした。

委任できないということは、どんなに頑張っても2,000件までしかデータが扱えなかったということです。

しかし今では一部関数は委任問題をクリアするようになっています。

同時編集できなかった▶同時編集できるようになっている

Excel をデータソースにしたアプリを使う場合、誰かがアプリを開いている時に別の場所で同時にアプリを起動するとエラーが起きていましたが、それが今はクリアになっています。

また、Excelが開きっぱなしだとアプリ側でパッチ処理がエラーになる(Submit Formも同様)事象がありましたが、これも無くなっています。

関数が入っているとエラー▶エラーにならなくなった

セルに関数(=A1+B1など)が入っているとアプリのエラーを引き起こしていましたが、それも無くなりました。

変更履歴が残らなかった▶Excelに履歴が残るようになった

誰がいつどんな変更を加えたか、アプリから変更を加えたExcelに履歴が残るようになりました。

コツはコネクションを使うこと

ただし、上記のExcel進化を体感するためには、キャンバスアプリから「Excel Online(Business)」コネクタ、または「OneDrive for Business」コネクタを使ってExcelと連携しなくてはいけません。

データの追加から接続する必要がある

アプリを新規作成する際に「データで開始する」から始めてしまうと、内部で古いExcelのコネクションを使ってしまうようで、進化する前のポンコツExcel機能しか利用できません。

外部データを選択、は使わないように。

Excel Online(Business)とOneDriver for Businessの違い

  • 「Excel Online(Business)」コネクタ
  • 「OneDriver for Business」コネクタ

この2つのコネクタのどちらかを利用しなければいけないのはわかったけど、2つの違いが気になると思います。

2024年7月現在、どちらのコネクタを利用するかで、進化版Excelの機能に違いがあることがわかっています。

Excel Online
(Business)
OneDrive for
Business
データで開始
した場合
Search関数1列のみ。委任可能複数列。委任可能1列のみ。委任不可。
同時編集可能不可不可
関数を使ったセルエラー表示可能エラー

Search関数が委任可能な点は見逃せないでしょう。

この点においてはリストよりも優れていますし、Search以外でも、リストでは委任不可でもExcelで委任可能な関数は存在すると思われます。

それでもExcelが主役のデータソースにはならない理由

地味に進化する(そしてそれが公式ドキュメントに載っていないという)Excelですが、それでも私は本番開発においてExcelを使うことはこの先ないでしょう。

その理由はこちらです。

ユーザー列が存在しない

Excelにはユーザー列が存在しないため、入力者情報の取り扱いが面倒です。

リストやDataverseは入力した人の氏名・アドレス・所属部署などEntra IDに紐づく情報を抽出できますが、Excelにはそれがありません。

画像の取り扱いが不明

これは私が未検証なのが理由ですが、Excelにおける画像の取り扱いが不明です。

できるのかもしれませんし、できないかもしれません。

Power Automateとの相性が悪い

Power AutomateとExcel Onlineは非常に相性が悪いです。

Power AutomateでExcel Onlineに何らかの変更をかけた場合、Excel内部でその情報が反映されるまでにラグ(遅延)が発生します。

そのため、AutomateのApply to eachアクションで繰り返し同じ処理をExcel Onlineに施す場合、遅延回避の処理を入れておかないと新しいデータが古いデータを上書きしてしまい、正しく処理されない事象が発生してしまうのです。

リストやDataverseであれば、Automateの処理は即座に反映されるため、ラグを心配する必要なく使えます。

参考までに、このラグは1つのデータに対しておよそ40秒〜50秒ほどあります(2024年7月現在)。

例えば、10人分の日報をApply to eachでExcel Onlineに転記し、1つずつPDFに変換しようとする場合、遅延回避のアクションを組み込むと約10分弱かかってしまうというわけです。

Excelのご利用は計画的に

一部のネット情報や動画では、Excelは絶対に使ってはならないデータソースと訴えるものがありますが、それは2021年4月以前のExcelを触った人か、もしくはコネクションの仕様を知らない人でしょう。

Excelはその後も地味に進化を続けていて、全く非推奨とまではいわないレベルになっていると感じます。

ただし最後に述べたように、本番開発において私がExcelデータソースを利用することはありませんし、開発に慣れた人も、今更Excelが進化していると知ったところで、使い勝手のいいリスト/Dataverseから乗り換える理由は見当たらないでしょう。

Excelは個人で使うアプリ、練習用アプリで気軽に使うデータソースとしてとどめ、リストもしくはDataverseに少しでも早く慣れるといいでしょう。

Xでフォローしよう