
Power Appsのエラーメッセージは英語で出ることが多く、初心者には意味がつかみにくいです。でも、よく出るパターンは決まっています。10種類のエラーを、意味 → 原因 → 直し方の3点セットで整理しました。
この記事はエラー・デバッグクラスターのサテライト記事です。エラーの種類の全体像はPower Apps 数式エラー解決の全体マップで整理していますので、あわせて読んでおくと理解が深まります。
なぜ英語のエラーが出るのか
Power Appsの数式エンジンはMicrosoft製ですが、内部的には英語ベースで動いています。日本語の表示に対応しているものもありますが、数式に関するエラーは英語のまま出ることが多いです。
私が最初に見たエラーは `Expected Text value` というものでした。当時はテキスト値が期待されていますという機械翻訳すら思いつかず、ただ途方に暮れていた記憶があります。今はこういったメッセージを見た瞬間に「あ、型変換が必要だな」と判断できるようになりましたが、それはひたすらエラーを直す経験を積んだからです。
エラーメッセージを読む力は、繰り返しで身につきます。まず代表的な10パターンを頭に入れておきましょう。
エラーメッセージ10選
1. Expected Text value
テキスト型の値を要求しているのに、数値や日付などの別の型が渡されているときに出るエラーです。もっとも多く遭遇するエラーのひとつです。
典型的な発生パターンは、ラベルのTextプロパティに数値を直接置こうとしたときです。
// NG:数値をそのまま渡している
Label1.Text = 100
// OK:Text関数でテキスト型に変換する
Label1.Text = Text(100)
文字列連結(& 演算子)でも同じエラーが出ます。数値・日付をテキストと結合したい場合は、Text()で変換してから結合します。
2. Expected Number value
数値型が必要な場所にテキストが渡されているときに出ます。SharePointのテキスト列に数値を入力しているケースで特によく遭遇します。
// NG:テキスト列の値をそのまま計算に使う
TextInput_Amount.Text * 1.1
// OK:Value関数で数値型に変換する
Value(TextInput_Amount.Text) * 1.1
テキスト入力コントロールの値は常にテキスト型です。これを数値として扱いたい場合は必ずValue()を通してください。
3. Incompatible types for comparison
比較演算子(=, <>, <, >)の左右で型が違うときに出るエラーです。例えばテキスト型の変数と数値を = で比較しようとしたときです。
変数の型は Set 関数で最初に代入した値によって決まります。途中で別の型を代入してしまうとこのエラーが起きます。グローバル変数とコンテキスト変数の使い方の記事でも触れていますが、変数を使い始めるときに型を意識して初期値を設定しておくことが大切です。
// NG:テキスト型に初期化した変数を数値と比較
Set(varCount, ""); // テキスト型として初期化
If(varCount = 0, ...) // 数値と比較 → エラー
// OK:数値型として初期化する
Set(varCount, 0); // 数値型として初期化
If(varCount = 0, ...) // 問題なし

4. The formula contains an error(数式にエラーが含まれています)
構文エラーの総称です。括弧の閉じ忘れ・カンマの位置ミス・スペルミスなど、式の書き方そのものが正しくないときに出ます。
このエラーが出たときにまず確認すべき箇所を順番に挙げます。
- 括弧の開き ( と閉じ ) の数が合っているか
- カンマ(,)またはセミコロン(;)の区切りが正しい場所にあるか(地域設定によって違う)
- 関数名のスペルが正しいか(大文字・小文字は問わないが、全角文字が混入していないか)
- 文字列のダブルクォート(")が正しく閉じているか

コピペで式を貼り付けた際に全角スペースが混入することがあります。見た目では分かりにくいので、エラー箇所のテキストを一度消して手打ちし直すと解決することがあります。
5. This formula has external side effects and cannot be used here
Set・Collect・Patch・Navigate・Notify などの副作用のある関数を、使えないプロパティに書いたときに出ます。
ItemsプロパティやVisibleプロパティ、ラベルのTextプロパティなどは値を返す式しか書けません。こういった場所にSetやCollectを書くとこのエラーになります。
// NG:ラベルのTextプロパティにSet関数を書く
Label1.Text = Set(varName, "テスト")
// OK:Set関数はボタンのOnSelectなどのアクションプロパティに書く
Button1.OnSelect = Set(varName, "テスト")
副作用のある関数はボタンのOnSelect・タイマーのOnTimerEnd・ギャラリーのOnSelectなどユーザー操作やイベントに反応するプロパティに書くのが基本です。
6. Name isn't valid / is not recognized
コントロール名・列名・変数名のスペルが間違っているか、参照先が存在しないときに出るエラーです。
よくある原因はコントロールをコピーして名前が変わっているケースです。例えば `TextInput1` を参照していたのに、コピー後のコントロール名が `TextInput1_1` になっていてエラーが出る、というパターンです。ツリービューでコントロールの名前を確認してから式を書く習慣をつけると防げます。
7. Circular reference(循環参照)
式の中で自分自身を参照しているときに出るエラーです。例えばLabel1のTextプロパティにLabel1.Textを参照するような式を書いてしまった場合です。
意図せず起きるケースとしては、コレクションの初期化でClearCollectとCollectを混在させてしまい、お互いを参照し合う状態になることがあります。発生したらまず参照のチェーンをさかのぼって、どこで自分自身を参照しているかを探します。
8. Cannot connect to the server / データソースへの接続エラー
SharePointリストやDataverseなどのデータソースへの接続が失敗したときに出ます。数式の問題ではなく、ネットワークや権限の問題であることが多いです。
確認すべきポイントは3つです。
- ブラウザをリロードして再接続を試みる
- そのSharePointサイトやDataverse環境にアクセス権限があるかを確認する
- Monitorツールを起動してHTTPステータスコードを確認する(403は権限不足、404は場所が違う)
同僚のアカウントでは動くのに自分のアカウントだと接続エラーになる場合は、権限設定の問題です。SharePoint管理者に確認してください。
9. Delegation warning(委任の警告)
これはエラーではありません。黄色い波線で表示される警告です。Filterなどの関数がデータソース側で処理できず、アプリ側で処理する形になっているときに出ます。
この警告が出ていても動作はします。ただし、データが500件(デフォルト)または2000件(設定変更後の上限)を超えていると、それ以降のデータが無視されます。データが増えてきた段階で突然動作がおかしくなる原因になります。
委任の仕組みと対処法については委任の警告と対処法の記事で詳しく解説しています。件数が少ないうちに対処しておくことをおすすめします。
10. ラベルに [object Object] または [Table] が表示される
これはエラーメッセージではなく、表示の問題です。ラベルのTextプロパティにテーブル型またはレコード型の値をそのまま渡しているときに起きます。
// NG:テーブル型をそのまま表示しようとしている
Label1.Text = Filter(リスト名, 条件)
// OK:件数を表示するならCountRows
Label1.Text = Text(CountRows(Filter(リスト名, 条件)))
// OK:最初の1件の列を表示するならFirst
Label1.Text = First(Filter(リスト名, 条件)).タイトル列
ギャラリーのSelectedプロパティもレコード型を返します。`Gallery1.Selected` をそのままラベルに渡すと同じ現象が起きるので、`.列名` で特定の列を指定してください。
エラーを素早く特定するための3つの習慣
エラーに慣れてきたら、診断の速度を上げるための習慣を身につけていきましょう。
まず型を疑う
私の経験では、Power Appsで出るエラーの半分以上は型に関するものです。Expected Text・Expected Number・Incompatible types のどれかに当てはまります。エラーが出たら最初に型が合っているかを確認する癖をつけると診断が早くなります。
式を短く削ってから確認する
複雑な式でエラーが出たときは、式を最小構成まで削って動かしてみます。動くなら削った部分を少しずつ戻しながら、どこでエラーが起きるかを二分探索する要領で特定します。体感的に、この削る → 確認 → 追加のサイクルが一番確実です。
エラーメッセージをそのまま検索する
`Expected Text value Power Apps` のように、英語のエラーメッセージをそのまま検索エンジンに入れると解決策が見つかりやすいです。日本語に訳してから検索するより、英語のまま検索するほうが情報が多く出てきます。MicrosoftのLearnサイトやコミュニティフォーラムも活用してください。
まとめ
よく出るエラーパターンを覚えておくだけで、エラーを見たときの焦りが大きく減ります。最初は一覧を手元に置いておいて、出るたびに照合してみてください。3ヶ月もすれば見た瞬間に原因が浮かぶようになります。
デバッグのスキルはアプリ開発の土台です。エラーを直す経験の積み重ねが、読める式の幅を広げていきます。トライしてみましょう。