(初学者向け) Power Apps の数式でエラーが発生したときの対応


# はじめに

Power Apps で数式を書いていると、以下のように、エラーに遭遇することがあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/839ab0ba-042c-7cc1-4958-39d499c78f52.png)

初学者の方からすると、何が問題か分からない、どのようにして対応すればよいか分からない、ということで躓いてしまうと思うので、今回は、この観点で情報を整理してみたいと思います。

# エラーが発生しているかどうかの判断

まず、エラーが発生しているかどうかを判断する方法です。

一つ目は、以下のように数式上で赤の波線が表示されている場合、エラーが発生していると判断できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/2685a2be-7f73-2237-4dc2-3bdaf87e43b7.png)

ただし、以下のように赤の波線が非常に短い場合もあり、式全体が長いと、こちらからはエラーが発生しているかちょっと判断しにくいときもあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/30e7c39c-e98e-a302-80fd-70b733a7d695.png)

このような際に、式全体としてエラーが発生しているかどうかは、以下の個所で判断可能です。こちらの"テキストの書式設定"がグレーアウトしてクリックできない際は、式のどこかで問題が発生している、つまり、どこかでエラーが発生していると判断できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/648ffccb-d506-742c-e527-31f3988bb8bc.png)

逆にエラーがない場合は、以下のようにグレーアウトしておらずクリックすることが出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/2a808748-e483-8a27-9e5b-6bfe408c814a.png)

そのため、"テキストの書式設定"がグレーアウトしてクリックできない際は、赤の波線が小さい場合においても、**「どこかにエラーがあるはず」と、目を凝らして探す必要があります。**

その他にも、以下のように、ギャラリーのデータをフィルターする際であれば、数式にエラーがあるため、間接的に、コントロールでの表示においてエラーが発生することでも確認できます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/6dd79c0f-38fb-2eae-990a-12682bd70c2f.png)

ただし、こちらをベースに調査しようとした場合、ギャラリーの赤のコントロール自体の数式バーの方に飛んでしまうため、今回の例のように、実際は、ギャラリー内のフィルター式側に問題がある場合、混乱してしまうかもしれません。こちらはあくまで間接的なエラーのため、大元である、ギャラリー自体のエラーを対処する必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/d38cc54f-3ee9-57ee-5219-e15275ca47ad.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/932ffd75-6c82-8566-b9ae-899a7529bf48.png)

# エラー対応の進め方

エラーの存在が確認出来たら、そこから調査をしていく必要があります。その際のポイントを説明していきます。

## 赤の波線にカーソルを近づける

まず、赤の波線にカーソルを近づけます。そうすると、エラーのメッセージが表示されます。こちらが調査をする際のヒントになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/f37ec6b7-656e-f156-9a17-ec6214d83a3f.png)

:::note
もちろん、このメッセージからすぐに解決には至らない場合もあると思いますし、エラーの対応 (エラーハンドリング) スキルは一朝一夕で身につくものではありませんが、まずはこのメッセージから調査をする癖をつけることをお勧めします。また、自身では解決できず有識者に相談をする場合は、こちらのメッセージを共有することをお勧めします。そうすることで、有識者は仮説を立てて調査をしやすくなるため、結果的に、早期解決できる可能性が上がると思います。
:::

今回の場合、"担当者"という列名が認識できていないようです。このような際は、まず、データソースの列名が正しく一致しているか確認します。

調べてみると、担当者という列は存在しそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/1b7c7c6f-22d4-b8b7-9b2f-17909c60351b.png)

念のため、"担当者.Email"という一度文字列を消して、再度入力をしてみます。列としては存在する場合、本来、途中まで入力をすると、以下の個所に候補が出てくるのですが、候補が表示されません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/b6646f2b-497d-837d-4bab-c9ae0cef7e2e.png)

正しい列名を入力をしたにも関わらず候補が表示されない際は、**「なんかおかしいぞ」** という感覚を持つことが大切です。そして、そのような際は、**エラーが出ている箇所より前に問題が隠されている可能性を疑う**ことを個人的にお勧めします。

※一朝一夕で身につくものではありませんが、エラーハンドリングに慣れている人はこのような際にそのような感が働くというか仮説を立てることが出来ると個人的に思います

今回のケースでは、フィルター式の途中にも拘らず、フィルター式を閉じるカッコが、一つ多かったことが原因でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/65ed05f6-786d-d931-ca0e-662318345dca.png)

カッコ閉じるを一つ減らすことで、エラーが消えました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/02a69cd7-4f2f-6296-98dc-181543942382.png)

:::note
カッコの数が多くなると、混乱してしまうこともあると思います。
そのような際は、`[テキストの書式設定]`を押して式を見やすくし、カッコをクリックすることで、カッコのペアを確認することが出来ます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/1303a162-847c-24bf-a0ea-bfa3e2b31321.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/8b951df0-d216-03a4-5531-0a4e1eb89427.png)

そちらを踏まえ、このカッコをここで閉じることが想定通りか、確認をします。

:::

:::note

それ以外にも、以下のように、コントロール名などを正しく認識できている際は、以下のように色がつくのですが、正しく認識できてない際は、黒文字のままになります。正しくコントロール名を入れているにもかかわらずこのようになる際においても、カッコの数などがおかしいことが、原因である場合があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/3b935105-f69d-afc7-abec-0647292b40cb.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/48d02221-1ae9-4176-a589-55764d6f4398.png)

:::

## 今見えているエラーが全てのエラーではない、焦らず、一つずつ着実にエラーの対処をしていく

エラーを解消すると、別の個所でエラーが表示されるようになりました。Power Apps の数式では、**現時点で赤の波線が表示されている箇所が、全てのエラーとは限らない場合があります。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/a0a60bc6-6429-e151-9e57-526e37868a29.png)

このような場合、**一歩前に進んだ**と捉え、焦らず、一つずつ着実にエラーの対処をしていくことが必要です。
実際に、先ほどは、"担当者.Email"の個所でエラーが発生していましたが、今回は、"＝"の個所でエラーが発生しており、"担当者.Email"の個所のエラーは解消したと考えられ、式としては、少し後ろの個所にエラーが表示されてるようになったことから、前に進んだと考えられます。

# 初歩的なエラーに遭遇しにくくするためのポイント

初学者の方がよく遭遇してしまうエラーを踏まえつつ、初歩的なエラーに遭遇しにくくするためのポイントを整理します。

## 全角文字、全角スペースに注意する

Power Apps の数式では、日本語の列名などの場合は別ですが、英語、記号については全て半角である必要があります。そのため、日本語と英語の切り替えの際などに、**意図せず、全角スペースや全角のカッコなどの記号を入れてしまいエラーに遭遇してしまうケースがあります。**

こちらのケースもイコールが全角文字になっていることが原因でした。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/97fa82f2-276e-5bc1-1245-2c8924ac50e2.png)

こちらのケースは、カッコが全角になっていることが原因です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/4503f67b-7e43-7ea0-37ce-13e98b2936b1.png)

## 候補が表示された際は候補から選択する

Power Apps では、手入力をすると、候補が表示されます。候補が表示された際は、候補から選択することをお勧めします。以下のように、コントロール名にスペースがある、データソースの名前、列名などにスペースがある場合、Power Apps 内ではシングルクォーテーションで囲って認識していることから、手入力だと間違えやすいためです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3074511/2bf9d9a7-4cda-b6dd-61e8-cf55097ed951.png)

# まとめ

今回は、初学者向けに、Power Apps の数式でエラーが発生したときの対応について整理してみました。
エラーに躓いて心が折れてしまう、リリースまで時間がかかってしまうことは個人的に悲しいことなので、少しでもそのための参考になれば幸いです。