Power Apps での Blank、Coalesce、IsBlank、および IsEmpty 関数

値が空白であるかどうか、または テーブルレコード が含まれていないかどうかをテストし、空白 の値を作成する方法を提供します。

概要

空白 は、"値がない" または "不明な値" のプレースホルダーです たとえば、ユーザーが選択を行なっていない場合、コンボ ボックス コントロールの Selected プロパティは 空白 です。 多くのデータ ソースは、Power Apps で 空白 として表される NULL 値 を保存し、返すことができます。

Power Apps のプロパティまたは計算された値はいずれも、空白 にすることができます。 たとえば、ブール値には通常、true または false という 2 つの値のいずれかがあります。 しかし、これら 2 つに加えて、状態が確定してないことを示す 空白 にもすることができます。 ワークシート セル は内容を含まない空白として開始しますが、(とりわけ) TRUE または FALSE の値を保持することができる Microsoft Excel に似ています。 どの時点でも、セルの内容は消去でき、空白 状態に返すことができます。

空の文字列 は文字を含まない文字列を意味します。 Len 関数 はこのような文字列のゼロを返し、"" の間に何もない 2 つの二重引用符として数式に書き込むことができます。 一部のコントロールおよびデータ ソースは、空の文字列を使用して "値なし" の条件を示します。 アプリの作成を簡素化するために、IsBlank および Coalesce 関数は 空白 値または空の文字列の両方をテストします。

IsEmpty 関数のコンテキストでは、 はレコードを含まないテーブルに固有です。 テーブルの構造はそのままで、 の名前を付けて完了している場合がありますが、テーブルにはデータがありません。 テーブルは空として開始され、レコードを取り入れるともう空ではなくなり、次にレコードを削除して再度空にすることができます。

注意

切り替えの期間にいます。 これまでは、空白 を使用してエラーをレポートし、エラーから有効な "値なし" を区別することができませんでした。 このため、現時点で、空白 値の格納は、ローカル コレクションでのみサポートされています。 ファイル > 設定 > 今後の機能 > 実験的数式レベルのエラー管理 の実験的な機能をオンにすると、他のデータソースに 空白 の値を格納することができます。 この機能を完了し、およびエラーからの 空白 値の適切な分離を完了することに積極的に取り組んでいます。

空白

Blank 関数は、空白 値を返します。 これを使用して、これらの値をサポートするデータ ソースに NULL 値を格納し、フィールドから値を効果的に削除します。

IsBlank

IsBlank 関数は、空白 値または空の文字列をテストします。 値が存在しない場合に一部のデータ ソースおよびコントロールが空の文字列を使用するため、テストには、アプリの作成を簡素化する空の文字列が含まれます。 特に 空白 値をテストするには IsBlank の代わりに if( Value = Blank(), ... を使用します。

既存のアプリに対するエラー処理を有効化する際、IsBlankIsBlankOrError で置き換えて既存アプリの動向を保存することを検討してください。 エラー処理を追加する前に、空欄 の値は、データベースからの null 値とエラー値の両方を表すために使用されました。 エラー処理は、これら 2 つの 空欄 の解釈を分離します。これは、引き続き IsBlank を使用する既存のアプリの動作が変わる可能性があります。

この IsBlank の戻り値は、ブール値の true または false です。

Coalesce

Coalesce 関数はその引数を順番に評価し、空白 または空の文字列ではない最初の値を返します。 この関数を使用して、空白 値または空の文字列を別の値に置換えますが、空白 でない、および空でない文字列の値は変更しない状態にしておきます。 すべての引数が 空欄 または空の文字列の場合、関数は 空欄 を返し、Coalesce を空の文字列を 空欄 値に変換する良い方法にします。

Coalesce( value1, value2 ) は、If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) のより簡潔な同等物であり、value1 および value2 が 2 回評価される必要はありません。 ここにあるように "その他" の数式がない場合 、If 関数空白 を返します。

Coalesce のすべての引数は同じ種類である必要があり、たとえば、数値とテキスト文字列を組み合わせることはできません。 Coalesce からの戻り値はこの一般的なタイプです。

IsEmpty

IsEmpty 関数は、テーブルにレコードが含まれているかどうかをテストします。 これは、CountRows 関数を使用してゼロを確認するのと同等です。 IsEmptyErrors 関数を組み合わせることにより、データ ソース エラーを検査できます。

この IsEmpty の戻り値は、ブール値の true または false です。

構文

Blank()

Coalesce( Value1 [, Value2, ... ] )

  • Value(s) – 必須。 テストする値。 各値は、空白 でない、および空の文字列でない値が見つかるまで、順番に評価されます。 このポイント以降の値は評価されません。

IsBlank( Value )

  • Value – 必須。 空白 値または空の文字列をテストをする値。

IsEmpty( Table )

  • Table - 必須。 レコードをテストするテーブル。

Blank

注意

現時点で、次の例はローカル コレクションでのみ機能します。 ファイル > 設定 > 今後の機能 > 実験的数式レベルのエラー管理 の実験的な機能をオンにすると、他のデータソースに 空白 の値を格納することができます。 この機能を完了し、およびエラーからの 空白 値の分離を完了することに積極的に取り組んでいます。

  1. アプリを最初から作成し、Button コントロールを追加します。

  2. ボタンの OnSelect プロパティを次の数式に設定します。

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを閉じます。

  4. ファイル メニューで コレクション をクリックまたはタップします。

    市区町村 コレクションが表示され、"シアトル" および "雨" の 1 つのレコードが表示されます。

    雨の天気とシアトルを表示するコレクション。

  5. 後ろ向きの矢印をクリックまたはタップして、既定のワークスペースに戻ります。

  6. Label コントロールを追加し、その Text プロパティを次の数式に設定します。

    IsBlank( First( Cities ).Weather )
    

    天気 フィールドに値 ("雨") が含まれているため、ラベルには false と表示されます。

  7. 2 つ目のボタンを追加し、その OnSelect プロパティを次の数式に設定します。

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを閉じます。

    市区町村 の最初のレコードの 天気 フィールドは 空白 に置き換えられ、以前あった "雨" は削除されます。

    空白の天気のフィールドとシアトルを表示しているコレクション。

    天気 フィールドには値が含まれていないため、ラベルには true と表示されます。

Coalesce

計算式 内容 結果
Coalesce( Blank(), 1 ) 常に 空白 値を返す Blank 関数から戻り値をテストします。 最初の引数が 空白 であるため、空白 でない値および空でない文字列が見つかるまで、評価は次の引数で続行されます。 1
Coalesce( "", "2" ) 空の文字列である最初の引数をテストします。 最初の引数が空の引数であるため、空白 でない値および空でない文字列が見つかるまで、評価は次の引数で続行されます。 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce は、引数リストの先頭で開始し、空白 でない値および空でない文字列が見つかるまで、各引数を次々に評価します。 この場合は、最初の 4 つの引数はすべて 空白 または空の文字列を返すため、評価は 5 番目の引数に続きます。 5 番目の引数は 空白 でないおよび空でない文字列なので、評価はここで停止します。 5 番目の引数の値が返され、6 番目の引数は評価されません。 3
Coalesce( "" ) 空の文字列である最初の引数をテストします。 最初の引数が空の文字列であり、これ以上引数がないため、関数は 空白 を返します。 空白

IsBlank

  1. アプリを最初から作成し、テキスト入力コントロールを追加して FirstName という名前を付けます。

  2. ラベルを追加し、その Text プロパティを次の数式に設定します。

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    既定では、テキスト入力コントロールの Text プロパティは "Text input" に設定されています。 プロパティには値が含まれており、空白ではないため、ラベルにはメッセージが表示されません。

  3. テキスト入力コントロールから、スペースを含めたすべての文字を削除します。

    Text プロパティには文字が含まれなくなったため、空の文字列であり IsBlank( FirstName.Text )true になります。 必須フィールドのメッセージが表示されます。

他のツールを使用して検証を実行する方法については、Validate 関数および データ ソースの操作 を参照してください。

その他の例:

計算式 内容 結果
IsBlank( Blank() ) 常に 空白 値を返す Blank 関数から戻り値をテストします。 True
IsBlank( "" ) 文字が含まれていない文字列。 True
IsBlank( "Hello" ) 1 つ以上の文字が含まれている文字列。 false
IsBlank( AnyCollection ) レコードが含まれていなくても、コレクション が存在するため、空白ではありません。 空のコレクションを検査するには、代わりに IsEmpty を使用します。 false
IsBlank( Mid( "Hello", 17, 2 ) ) Mid の開始文字は文字列の末尾よりも後ろにあります。 結果は、空の文字列です。 True
IsBlank( If( false, false ) ) ElseResult がない If 関数。 条件が常に false になるため、この If は常に 空白 を返します。 True

IsEmpty

  1. アプリを最初から作成し、Button コントロールを追加します。

  2. ボタンの OnSelect プロパティを次の数式に設定します。

    Collect( IceCream, { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

  3. アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを閉じます。

    IceCream という名前のコレクションが作成され次のデータが含まれます。

    Strawberry と Chocolate のフレーバーの数量が 300 と 100 のテーブル。

    このコレクションに 2 つのレコードは含まれ、空ではありません。 IsEmpty( IceCream )false を返し、および CountRows( IceCream )2 を返します。

  4. 2 つ目のボタンを追加し、その OnSelect プロパティを次の数式に設定します。

    Clear( IceCream )

  5. アプリをプレビューし、2 つ目のボタンをクリックまたはタップして、次にプレビューを閉じます。

    これで、コレクションは空になりました。

    空のコレクションとして Flavor と Quantity を持つコレクション。

    Clear 関数はコレクションからすべてのレコードを削除し、その場合は空のコレクションになります。 IsEmpty( IceCream )true を返し、および CountRows( IceCream )0 を返します。

以下の例のように、IsEmpty を使用して、計算されたテーブルが空かどうかをテストすることもできます。

計算式 内容 結果
IsEmpty( [ 1, 2, 3 ] ) 単一列テーブルに 3 つのレコードが含まれており、したがって、空ではありません。 false
IsEmpty( [ ] ) 単一列テーブルにはレコードが含まれず、空です。 True
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) 単一列テーブルに 5 より大きい値が含まれていません。 フィルターからの結果にはレコードが含まれておらず、空です。 True