Power Appsで大文字小文字を統一する|Upper・Lower・Properの使い方

確かに同じ文字なのにTrueにならない。Power Appsでこうなる場合、大文字小文字の違いが原因であることがよくあります。Upper・Lower・Properを使えば、この問題はすっきり解決できます。

Power Appsの文字列比較は大文字小文字を区別する

Power Appsの文字列比較は、大文字と小文字を別の文字として扱います。たとえば「yamada@example.com」と「Yamada@example.com」は別の文字列です。Ifの条件式が通らない、FilterやLookUpでヒットしない、という症状がある場合は、大文字小文字の違いを疑ってみてください。

特によく起きるのが、User().Emailとリストに登録されたメールアドレスを比較するケースです。Active Directoryから取得されるメールアドレスは環境によって大文字小文字の扱いが異なることがあり、SharePointのリストに手で入力されたデータと一致しないことがあります。私の社内でも、勤務表アプリで自分のデータだけが表示されないという相談が来たとき、この原因が多かったです。

3つの関数の使い分け

Power Appsには大文字小文字を変換する関数が3つあります。

関数動作主な用途
Upperすべて大文字に変換コード・略称の統一
Lowerすべて小文字に変換メールアドレスの比較
Proper先頭だけ大文字、残りを小文字に変換人名・地名の表示整形

用途が明確に分かれているため、使い分け自体はそれほど難しくありません。比較をするときはLower、表示を整えるときはProperと覚えておけば、ほとんどのケースで対応できます。

実例3パターン

User().Emailとの比較でLowerを使う

ログインユーザーのメールアドレスと、SharePointリストに登録されたメールアドレスを比較してデータを絞り込む場面です。どちらもLowerで小文字に統一してから比較することで、大文字小文字の違いによるミスマッチを防げます。

Filter(
    申請リスト,
    Lower(申請者メール) = Lower(User().Email)
)

FilterやLookUpの詳しい使い方はPower AppsのFilter・Search・LookUp関数でまとめています。

フォーム入力の氏名整形にProperを使う

テキスト入力コントロールでユーザーが入力した名前を、先頭大文字に統一して表示・保存する場面です。たとえば「SUZUKI TARO」や「suzuki taro」といった入力をPatch前にProperで整形すると、リストのデータが統一されます。

Patch(
    社員リスト,
    Defaults(社員リスト),
    {
        氏名_英語: Proper(TextInput_Name.Text)
    }
)

ただし、Properはすべての単語の先頭を大文字にするため、メールアドレスや略称には使えません。「yamada@example.com」にProperをかけると「Yamada@Example.Com」になってしまいます。表示整形に使う場面を人名・地名などに限定してください。

ギャラリーの検索でLowerを組み合わせる

検索ボックスの入力値でギャラリーを絞り込む場面では、入力値とデータ両方をLowerで統一することで、大文字小文字を気にしない検索が実現できます。

Filter(
    商品リスト,
    Lower(商品名) = Lower(TextInput_Search.Text)
)

SearchではなくFilterで完全一致検索をする場合、この前処理が特に効果的です。ギャラリーコントロールの使い方はPower Appsのギャラリーコントロールで解説しています。

よくある間違い:Properをメールアドレスに使う

Properは人名の整形には便利ですが、メールアドレスや複合語には使えません。代表的なNGパターンを挙げておきます。

入力値Proper適用後問題
yamada@example.comYamada@Example.Comメールアドレスとして無効になる
power appsPower Appsこれは正しく変換される
sharepoint-listSharepoint-Listハイフン後も大文字になる

メールアドレスを含むデータには、ProperではなくLowerを使いましょう。

まとめ:比較前はLower、表示整形はProper

使い分けの基準を一言でまとめると、比較前はLower、表示整形はProperです。Upperは英字コードの統一など、特定の用途で使います。

大文字小文字の問題は、スペースの混入と並んでデータ不一致の代表的な原因です。スペース除去にはTrimやTrimEndsが効果的で、こちらも合わせて使うと比較処理がより堅牢になります。TrimとTrimEndsの使い方はこちらの記事をご覧ください。

IfやSwitchと組み合わせた使い方についてはPower AppsのIfとSwitchもあわせて参考にしてください。

Power Appsのその他のテキスト関数についての完全ガイドはこちらの記事をご覧ください

小さな関数ですが、使いどころを知っておくだけでアプリの信頼性がぐっと上がります。ぜひ取り入れてみてください。

Xでフォローしよう