PowerApps の Blank、Coalesce、IsBlank、および IsEmpty 関数Blank, Coalesce, IsBlank, and IsEmpty functions in PowerApps

値が空白であるかどうか、または、テーブルレコードが含まれていないかどうかをテストし、空白の値を作成する方法を提供します。Tests whether a value is blank or a table contains no records, and provides a way to create blank values.

概要Overview

"空白" は、"値がない" または "不明な値" の場合のプレースホルダーです。Blank is a placeholder for "no value" or "unknown value." ユーザーがテキスト入力コントロールに文字を入力しなかった場合、テキスト入力コントロールは "空白" になります。A Text input control is blank if the user hasn't typed any characters in it. ユーザーが文字を入力するとすぐに、そのコントロールは "空白" ではなくなります。The same control is no longer blank as soon as the user types a character in it. 一部のデータ ソースは、NULL 値を格納し、返します。これは、PowerApps では "空白" として表されます。Some data sources can store and return NULL values, which are represented in PowerApps as blank.

: 現時点で、"空白" の値は、ローカル コレクションに対してのみサポートされています。Note: At this time, storing blank values is supported only for local collections. 多くのデータ ソースで "空白" (NULL) 値がサポートされていることがわかっており、マイクロソフトでは、この制限の解消に取り組んでいます。We know that many data sources support blank (NULL) values, and we're working to lift this limitation.

プロパティまたは計算された値はどれも、"空白" になる可能性があります。Any property or calculated value can be blank. たとえばブール値は通常、truefalse のいずれかの値になります。For example, a Boolean value normally has one of two values: true or false. しかし、これら 2 つの値のほかに、"空白" になることがあります。But in addition to these two, it can also be blank. これは特に Microsoft Excel に似ています。Excel では、最初は空白であるワークシートのセルに true または false の値を設定できます。This is similar to Microsoft Excel, where a worksheet cell starts out as blank but can hold the values TRUE or FALSE, among others. このセルの内容はいつでも削除でき、削除したらセルの内容は "空白" の状態に戻ります。At any time, the contents of the cell can be removed, and it would return to a blank state.

"" は、レコードがないテーブルに固有です。Empty is specific to tables that contain no records. テーブル構造は完全で、の名前は付いているものの、テーブル内にデータがありません。The table structure may be intact, complete with column names, but no data is in the table. 最初は空だったテーブルにレコードを追加して空でない状態にした後で、レコードを削除してもう一度空にすることができます。A table may start as empty, take on records and no longer be empty, and then have the records removed and again be empty.

説明Description

空白関数は、"空白" の値を返します。The Blank function returns a blank value. この関数を使用して、これらの値をサポートするデータ ソースに NULL 値を格納して、フィールドから値を効率的に削除します。Use this to store a NULL value in a data source that supports these values, effectively removing any value from the field.

IsBlank 関数は "空白" の値の有無をテストします。The IsBlank function tests for a blank value. "空白" の値は、次のような場合に見つかります。Blank values are found in situations such as these:

  • 空白関数からの戻り値。The return value from the Blank function.
  • コントロール プロパティに数式が設定されていない。A control property has no formula set for it.
  • テキスト入力コントロールに値が入力されていない。または、リスト ボックスで選択が行われていない。No value is typed into a text-input control, or no selection is made in a listbox. IsBlank を使用して、フィールドが必須であることをフィードバックで示すことができます。You can use IsBlank to provide feedback that a field is required.
  • 文字が含まれていない文字列に、0 の Len がある。A string that contains no characters has a Len of 0.
  • 関数でエラーが発生した。An error occurred in a function. 多くの場合、関数に渡された引数のいずれかが無効です。Often, one of the arguments to the function wasn't valid. 引数の値が "空白" の場合、多くの関数は "空白" の値を返します。Many functions return blank if the value of an argument is blank.
  • (SQL Server などの) 接続されたデータ ソースで "null" 値が使用されている。Connected data sources, such as SQL Server, may use "null" values. PowerApps では、これらの値は "空白" になります。These values appear as blank in PowerApps.
  • If 関数の else 部分が指定されておらず、すべての条件が false である。The else portion of an If function wasn't specified, and all conditions were false.
  • Update 関数を使用したものの、すべての列の値を指定していなかったため、You used the Update function but didn't specify a value for all columns. 指定した列に値が入力されなかった。As a result, no values were placed in the columns that you didn't specify.

Coalesce 関数は、引数を順番に評価し、でない最初の値を返します。The Coalesce function evaluates its arguments in order and returns the first value that isn't blank. この関数を使用するとの値を別の値で置き換えますが、以外の値は変更されません。Use this function to replace a blank value with a different value but leave non-blank values unchanged. すべての引数がである場合、関数はを返します。If all of the arguments are blank, then the function returns blank. Coalesce のすべての引数は同じ型である必要があります。たとえば、数値とテキスト文字列を混在させることはできません。All arguments to Coalesce must be of the same type; for example, you can't mix numbers with text strings. Coalesce(value1, value2) は、If(IsBlank(value1) value1, value2) と等しく、より簡潔ですが、value1 を 2 度評価せずにすみます。Coalesce( value1, value2 ) is the more concise equivalent of If( IsBlank( value1 ) value1, value2 ) and doesn't require value1 to be evaluated twice.

IsEmpty 関数は、テーブル内にレコードがあるかどうかをテストします。The IsEmpty function tests whether a table contains any records. これは、CountRows 関数を使用してゼロの有無をチェックするのと同じことです。It's equivalent to using the CountRows function and checking for zero. IsEmpty は、Errors 関数と組み合わせることで、データソース エラーのチェックに使用できます。You can check for data-source errors by combining IsEmpty with the Errors function.

IsBlankIsEmpty のどちらの関数の戻り値も、ブール値の true または false です。The return value for both IsBlank and IsEmpty is a Boolean true or false.

構文Syntax

空白()Blank()

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

  • Value(s) – 必須。Value(s) – Required. テストする値。Values to test. それぞれの値が、の値が見つかるまで順番に評価されます。Each value is evaluated in order until a non-blank value is found. 最初の以外の値の後にくる値は評価されません。Values after the first non-blank value aren't evaluated.

IsBlank( Value )IsBlank( Value )

  • Value – 必須。Value – Required. テストする値。Value to test.

IsEmpty( Table )IsEmpty( Table )

  • Table - 必須。Table - Required. レコードの有無をテストするテーブル。Table to test for records.

Examples

空白Blank

注: 現時点で、次の例はローカル コレクションに対してのみ機能します。NOTE: At this time, the following example only works for local collections. 多くのデータ ソースで "空白" (NULL) 値がサポートされていることがわかっており、マイクロソフトでは、この制限の解消に取り組んでいます。We know that many data sources support blank (NULL) values and We are working to lift this limitation.

  1. アプリを最初から作成し、ボタン コントロールを追加します。Create an app from scratch, and add a Button control.
  2. ボタンの OnSelect プロパティを次の数式に設定します。Set the button's OnSelect property to this formula:

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

  3. アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを終了します。Preview your app, click or tap the button that you added, and then close Preview.
  4. [ファイル] メニューの [コレクション] をクリックまたはタップします。On the File menu, click or tap Collections.

    [Cities] (都市) コレクションが表示され、"Seattle" および "Rainy" の 1 つのレコードが表示されます。The Cities collection appears, showing one record with "Seattle" and "Rainy":

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

  5. 戻る矢印をクリックまたはタップして、既定のワークスペースに戻ります。Click or tap the back arrow to return to the default workspace.
  6. ラベル コントロールを追加し、その Text プロパティを次の数式に設定します。Add a Label control, and set its Text property to this formula:

    IsBlank( First( Cities ).Weather )IsBlank( First( Cities ).Weather )

    [Weather] (天気) フィールドに値 ("Rainy" (雨)) が含まれているため、ラベルには false と表示されます。The label shows false because the Weather field contains a value ("Rainy").

  7. 2 つ目のボタンを追加し、その OnSelect プロパティを次の数式に設定します。Add a second button, and set its OnSelect property to this formula:

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

  8. アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを終了します。Preview your app, click or tap the button that you added, and then close Preview.

    Cities (都市) の最初のレコードの [Weather] (天気) フィールドは、"空白" に置き換えられ、そこに設定されていた "Rainy" は削除されます。The Weather field of the first record in Cities is replaced with a blank, removing the "Rainy" that was there previously.

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

    [Weather] (天気) フィールドに値が含まれていないため、ラベルには true と表示されます。The label shows true because the Weather field no longer contains a value.

CoalesceCoalesce

数式Formula 説明Description 結果Result
Coalesce(Blank(), 1)Coalesce( Blank(), 1 ) 空白関数からの戻り値をテストします。常に "空白" の値が返されます。Tests the return value from the Blank function, which always returns a blank value. 最初の引数がであるため、以外の値が見つかるまで、次の引数の評価を続けます。Because the first argument is blank, evaluation continues with the next argument until a non-blank value is found. 11
Coalesce(Blank(), Blank(), Blank(), Blank(), 2, 3)Coalesce( Blank(), Blank(), Blank(), Blank(), 2, 3 ) Coalesce は、引数リストの先頭から開始し、以外の値が見つかるまで、各引数を順番に評価します。Coalesce starts at the beginning of the argument list and evaluates each argument in turn until a non-blank value is found. この場合は、最初の 4 つの引数はすべてを返すため、評価は 5 番目の引数まで続きます。In this case, the first four arguments all return blank, so evaluation continues to the fifth argument. 5 番目の引数はではないため、評価はここで停止します。The fifth argument is non-blank, so evaluation stops here. 5 番目の引数の値が返され、6 番目の引数は評価されません。The value of the fifth argument is returned, and the sixth argument isn't evaluated. 22

IsBlankIsBlank

  1. アプリを最初から作成し、テキスト入力コントロールを追加して FirstName という名前を付けます。Create an app from scratch, add a text-input control, and name it FirstName.
  2. ラベルを追加し、その Text プロパティを次の数式に設定します。Add a label, and set its Text property to this formula:

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

    既定では、テキスト入力コントロールの Text プロパティは "Text input" に設定されています。By default, the Text property of a text-input control is set to "Text input". このプロパティには値が含まれており、空白ではないため、ラベルにはメッセージが表示されません。Because the property contains a value, it isn't blank, and the label doesn't display any message.

  3. テキスト入力コントロールから、スペースを含めたすべての文字を削除します。Remove all the characters from the text-input control, including any spaces.

    Text プロパティ内の文字がなくなったため、これは "空白" になり、IsBlank( FirstName.Text )true になります。Because the Text property no longer contains any characters, it's blank, and IsBlank( FirstName.Text ) will be true. 必須フィールドのメッセージが表示されます。The required field message is displayed.

他のツールを使用して検証を実行する方法については、Validate 関数とデータ ソースの操作方法をご確認ください。For information about how to perform validation by using other tools, see the Validate function and working with data sources.

他には次のような例があります。Other examples:

数式Formula 説明Description 結果Result
IsBlank( Blank() )IsBlank( Blank() ) 空白関数からの戻り値をテストします。常に "空白" の値が返されます。Tests the return value from the Blank function, which always returns a blank value. truetrue
IsBlank( "" )IsBlank( "" ) 文字が含まれていない文字列。A string that contains no characters. truetrue
IsBlank( "Hello" )IsBlank( "Hello" ) 1 つ以上の文字が含まれている文字列。A string that contains one or more characters. falsefalse
IsBlank( AnyCollection )IsBlank( AnyCollection ) コレクションが存在するため、レコードがなくとも空白ではありません。Because the collection exists, it isn't blank, even if it doesn't contain any records. 空のコレクションの有無をチェックするには、代わりに IsEmpty を使用します。To check for an empty collection, use IsEmpty instead. falsefalse
IsBlank( Mid( "Hello", 17, 2 ) )IsBlank( Mid( "Hello", 17, 2 ) ) Mid の開始文字が文字列の範囲外になっています。The starting character for Mid is beyond the end of the string. そのため、空の文字列が返されます。The result is an empty string. truetrue
IsBlank( If( false, false ) )IsBlank( If( false, false ) ) ElseResult がない If 関数。An If function with no ElseResult. 条件が常に false になるため、この If は常に "空白" を返します。Because the condition is always false, this If always returns blank. truetrue

IsEmptyIsEmpty

  1. アプリを最初から作成し、ボタン コントロールを追加します。Create an app from scratch, and add a Button control.
  2. ボタンの OnSelect プロパティを次の数式に設定します。Set the button's OnSelect property to this formula:

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

  3. アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを終了します。Preview your app, click or tap the button that you added, and then close Preview.

    IceCream という名前のコレクションが作成されます。このデータには、次のデータが含まれます。A collection named IceCream is created and contains this data:

    このコレクションには 2 つのレコードがあり、空ではありません。This collection has two records and isn't empty. IsEmpty( IceCream )false を返し、CountRows( IceCream )2 を返します。IsEmpty( IceCream ) returns false, and CountRows( IceCream ) returns 2.

  4. 2 つ目のボタンを追加し、その OnSelect プロパティを次の数式に設定します。Add a second button, and set its OnSelect property to this formula:

    Clear( IceCream )Clear( IceCream )

  5. アプリをプレビューし、2 つ目のボタンをクリックまたはタップして、プレビューを終了します。Preview your app, click or tap the second button, and then close Preview.

    これでコレクションは空になりました。The collection is now empty:

    Clear 関数でコレクションからすべてのレコードが削除され、コレクションは空になっています。The Clear function removes all the records from a collection, resulting in an empty collection. IsEmpty( IceCream )true を返し、CountRows( IceCream )0 を返します。IsEmpty( IceCream ) returns true, and CountRows( IceCream ) returns 0.

以下の例のように、IsEmpty を使用して、計算されたテーブルが空かどうかをテストすることもできます。You can also use IsEmpty to test whether a calculated table is empty, as these examples show:

数式Formula 説明Description 結果Result
IsEmpty( [ 1, 2, 3 ] )IsEmpty( [ 1, 2, 3 ] ) 単一列テーブルに 3 つのレコードが含まれており、テーブルは空ではありません。The single-column table contains three records and, therefore, isn't empty. falsefalse
IsEmpty( [ ] )IsEmpty( [ ] ) 単一列テーブルにレコードが含まれておらず、テーブルは空です。The single-column table contains no records and is empty. truetrue
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) )IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) 単一列テーブルに 5 より大きい値が含まれていません。The single-column table contains no values that are greater than 5. フィルター処理後のテーブルにはレコードが含まれておらず、テーブルは空です。The result from the filter doesn't contain any records and is empty. truetrue