Power AppsのLen関数|文字数カウントは単独では使わない、数式の部品としての使い方

Len関数は文字数を返すだけのシンプルな関数ですが、単独で使うケースはほとんどありません。IfやMid・Rightと組み合わせて初めて役立つ、数式の部品として使う関数です。

Lenの基本

Len関数は1つの引数を受け取り、その文字列の文字数を数値で返します。

Len("Power Apps")
// 結果:10

Len("")
// 結果:0

スペースも1文字としてカウントされます。全角文字も半角文字も同じく1文字です。

Lenを使う3つのパターン

入力バリデーション:文字数上限チェック

フォームの入力欄に文字数制限を設けて、超過したときにメッセージを出す定番パターンです。

If(
    Len(TextInput_Memo.Text) > 200,
    "200文字以内で入力してください",
    ""
)

ラベルのTextにこの数式を入れておけば、200文字を超えた瞬間に警告を表示できます。送信ボタンの活性制御にも応用できます。

// 送信ボタンのDisplayMode
If(Len(TextInput_Memo.Text) <= 200, DisplayMode.Edit, DisplayMode.Disabled)

Ifの使い方はこちらの記事で詳しく解説しています。

残り文字数を表示する

SNSの入力欄のように「残り○文字」をリアルタイムで表示するUIです。

$"残り {200 - Len(TextInput_Memo.Text)} 文字"

文字列補間と組み合わせるとシンプルに書けます。文字列補間の使い方はこちらの記事を参照してください。

MidやRightと組み合わせて末尾から動的に切り出す

Rightは末尾からn文字を取り出しますが、文字列全体の長さに応じて切り出し範囲を変えたいときはLenと組み合わせます。たとえば最初のスラッシュより後ろをすべて取り出したい場合です。

With(
    { slashPos: Find("/", TextInput_Path.Text) },
    Right(
        TextInput_Path.Text,
        Len(TextInput_Path.Text) - slashPos
    )
)

Len(全体の文字数) から Find(区切り文字の位置) を引くことで、末尾から取り出すべき文字数を動的に算出します。Left・Rightの詳しい使い方はこちらの記事で解説しています。

SharePointの文字数制限との関係

SharePointのテキスト列(1行テキスト)はデフォルトで255文字の上限があります。Power Appsのフォームからそのまま入力すると、255文字を超えた場合にPatchがエラーになることがあります。Lenを使ったバリデーションを入れておくことで、保存前に弾けます。

If(
    Len(TextInput_Title.Text) > 255,
    Notify("タイトルは255文字以内にしてください", NotificationType.Error),
    Patch(申請リスト, Defaults(申請リスト), { タイトル: TextInput_Title.Text })
)

委任の警告やSharePointのデータ制限についてはこちらの記事も合わせてご覧ください。

Lenは単独では使わない

あらためて整理すると、Lenを単体でラベルに表示する用途はほぼありません。常にIf・Mid・Right・Findなどと組み合わせて、文字数を条件や計算の材料として使います。逆に言えば、IfやMidの中に数値が必要な場面で「文字数から計算できないか」と考えたとき、Lenを思い出せばいいのです。

まとめ

Lenの使いどころは3つです。入力バリデーション(文字数制限チェック)、残り文字数の表示、そしてMidやRightと組み合わせた動的な切り出しです。いずれも他の関数と組み合わせて初めて機能します。

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

地味ですが確実に使う場面が来る関数です。引き出しのひとつとして覚えておきましょう。

Xでフォローしよう