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

概要

"空白" は、"値がない" または "不明な値" の場合のプレースホルダーです。 ユーザーがテキスト入力コントロールに文字を入力しなかった場合、テキスト入力コントロールは "空白" になります。 ユーザーが文字を入力するとすぐに、そのコントロールは "空白" ではなくなります。 一部のデータ ソースは、NULL 値を格納し、返します。これは、PowerApps では "空白" として表されます。

: 現時点で、"空白" の値は、ローカル コレクションに対してのみサポートされています。 多くのデータ ソースで "空白" (NULL) 値がサポートされていることがわかっており、マイクロソフトでは、この制限の解消に取り組んでいます。

プロパティまたは計算された値はどれも、"空白" になる可能性があります。 たとえばブール値は通常、truefalse のいずれかの値になります。 しかし、これら 2 つの値のほかに、"空白" になることがあります。 これは特に Microsoft Excel に似ています。Excel では、最初は空白であるワークシートのセルに true または false の値を設定できます。 このセルの内容はいつでも削除でき、削除したらセルの内容は "空白" の状態に戻ります。

"" は、レコードがないテーブルに固有です。 テーブル構造は完全で、の名前は付いているものの、テーブル内にデータがありません。 最初は空だったテーブルにレコードを追加して空でない状態にした後で、レコードを削除してもう一度空にすることができます。

説明

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

IsBlank 関数は "空白" の値の有無をテストします。 "空白" の値は、次のような場合に見つかります。

  • 空白関数からの戻り値。
  • コントロール プロパティに数式が設定されていない。
  • テキスト入力コントロールに値が入力されていない。または、リスト ボックスで選択が行われていない。 IsBlank を使用して、フィールドが必須であることをフィードバックで示すことができます。
  • 文字が含まれていない文字列に、0 の Len がある。
  • 関数でエラーが発生した。 多くの場合、関数に渡された引数のいずれかが無効です。 引数の値が "空白" の場合、多くの関数は "空白" の値を返します。
  • (SQL Server などの) 接続されたデータ ソースで "null" 値が使用されている。 PowerApps では、これらの値は "空白" になります。
  • If 関数の else 部分が指定されておらず、すべての条件が false である。
  • Update 関数を使用したものの、すべての列の値を指定していなかったため、 指定した列に値が入力されなかった。

IsEmpty 関数は、テーブル内にレコードがあるかどうかをテストします。 これは、CountRows 関数を使用してゼロの有無をチェックするのと同じことです。 IsEmpty は、Errors 関数と組み合わせることで、データソース エラーのチェックに使用できます。

IsBlankIsEmpty のどちらの関数の戻り値も、ブール値の true または false です。

構文

空白()

IsBlank( Value )

  • Value – 必須。 テストする値。

IsEmpty( Table )

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

空白

注: 現時点で、次の例はローカル コレクションに対してのみ機能します。 多くのデータ ソースで "空白" (NULL) 値がサポートされていることがわかっており、マイクロソフトでは、この制限の解消に取り組んでいます。

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

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

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )

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

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

    [Cities] (都市) コレクションが表示され、"Seattle" および "Rainy" の 1 つのレコードが表示されます。

    天気が Rainy (雨) の Seattle (シアトル) を示すコレクション

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

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

    IsBlank( First( Cities ).Weather )

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

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

    Patch( Cities, First( Cities ), { Weather: Blank() } )

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

    Cities (都市) の最初のレコードの [Weather] (天気) フィールドは、"空白" に置き換えられ、そこに設定されていた "Rainy" は削除されます。

    [Weather] (天気) フィールドが空白の、Seattle を示すコレクション

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

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() ) 空白関数からの戻り値をテストします。常に "空白" の値が返されます。 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. アプリを最初から作成し、ボタン コントロールを追加します。

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

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

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

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

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

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

    Clear( IceCream )

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

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

    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