Power Apps:アプリ内でアプリを実行しているユーザー名を姓・名順で表示させる

Power Appsのアプリ内でユーザー名を表示させたいこともあるかと思います。

その際、特に設定をしないと名前の表示が姓・名の順でなく、名・姓の順になってしまいました。

今回は、表示を姓・名順で表示させる方法をご紹介します。

実現したかったこと

Power Apps内でアプリを実行しているユーザーの情報を、テキスト入力箇所に表示させようとしていました。

下記画像のイメージです。

発生した事象

User関数

調べたところ、User関数を利用することでアプリを実行しているユーザー情報を取得できることが分かりました。

具体的には以下の式です。

User().FullName

参考:User 関数 - Power Platform | Microsoft Learn

発生した事象

実際に、上記の式を設定してみました。テキスト入力のDefaultに上記の式を設定します。

すると、テキスト入力部分にユーザー名が表示されました。ですが、表示が名・姓の順番になってしまっています。*1

原因

具体的な理由を見つけることはできませんでした。

仮説になってしまいますが、Microsoft本社があるアメリカでは名前の表記が名・姓の順番であるため、このような表示順になっていると考えられます。

対応策

以下の式を入力することで、姓・名の順で表示させることが出来ました。

式の意味としては「User().FullName」で取得した情報の内、名と姓を分けて取得して姓・名の順番で並び替えるというものです。

Concatenate(Last(ForAll(Split(User().FullName," "), {Result: ThisRecord.Value}).Result).Result," ",First(ForAll(Split(User().FullName," "), {Result: ThisRecord.Value}).Result).Result)

実際に、上記の式を設定してみました。テキスト入力のDefaultに上記の式を設定します。

テキスト入力部分にユーザー名が表示されました。表示も姓・名の順番で表示されています。

式の解説

ここからは、上記の式を分解して説明します。

Concatenate関数

Concatenate関数は文字列を結合する関数です。

参考:Concat および Concatenate 関数 - Power Platform | Microsoft Learn

ここでは、以下の3つを結合しています

  • 「Last(ForAll(Split(User().FullName," "), {Result: ThisRecord.Value}).Result).Result」で抜き出した姓。*2
  • 「" "」で指定した空白(スペース)。
  • 「First(ForAll(Split(User().FullName," "), {Result: ThisRecord.Value}).Result).Result)」で抜き出した名。
  • *3
Last関数とSplit関数による姓の取得

Last関数とSplit関数を用いて「User().FullName」で取得した情報のうち、空白(スペース)より後ろの情報を抜き出しています。

Last(ForAll(Split(User().FullName," "), {Result: ThisRecord.Value}).Result).Result

今回の例でいうと、「User().FullName」で取得できる値は「太郎 テスト」です。それをSplit関数を用いて空白(スペース)で分割させます。ですので、最初に取得できる値は「太郎」と「テスト」になります。

Last関数を用いて、「太郎」と「テスト」のうち後ろの値を抜き出します。最終的に取得する値は「テスト」となります。

参考:

空白スペース「" "」

「" "」は空白(スペース)を意味します。

抜き出した値を結合させる際に、空白(スペース)を入れて表記させたいため、この値を入れています。

First関数とSplit関数による名の取得

First関数とSplit関数を用いて「User().FullName」で取得した情報のうち、空白より前の情報を抜き出しています。

First(ForAll(Split(User().FullName," "), {Result: ThisRecord.Value}).Result).Result)

今回の例でいうと、「User().FullName」で取得できる値は「太郎 テスト」です。これをSplit関数を用いて空白(スペース)で分割させます。ですので、最初に取得できる値は「太郎」と「テスト」になります。

First関数を用いて、「太郎」と「テスト」のうち後ろの値を抜き出します。最終的に取得する値は「太郎」となります。

終わりに

Power Apps内でユーザー名の表示順を姓・名で表示させる方法をご紹介しました。

今回は表示させるだけの手段で利用しましたが、取得した情報をPower Appsに連携することも出来ます。

同じような現象で悩んでいる方の参考になれば幸いです。

*1:ここでは、姓をテスト、名を太郎としています。

*2:※今回の例でいうと「テスト」

*3:今回の例でいうと「太郎」

執筆担当者プロフィール
平川 純也

平川 純也(日本ビジネスシステムズ株式会社)

普段はネットワーク案件に携わっています。Power Platformを用いた業務改善にも取り組んでいます。

担当記事一覧