Blank、Coalesce、IsBlank、および IsEmpty 関数
適用対象: キャンバス アプリ デスクトップ フロー Dataverse 数式列 モデル駆動型アプリ Power Pages Power Platform コマンドライン
値が空白であるかどうか、または テーブル に レコード が含まれていないかどうかをテストし、空白の値を作成する方法を提供します。
概要
空白 は、「値なし」または「不明な値」のプレースホルダーです。たとえば、ユーザーが選択を行っていない場合、 コンボ ボックス コントロールの 選択済み プロパティは 空白 になります。 多くのデータ ソースは、Power Apps で空白として表される NULL 値 を保存し、返すことができます。
Power Apps のプロパティまたは計算された値はいずれも、空白にすることができます。 たとえば、ブール値には通常、true または false という 2 つの値のいずれかがあります。 しかし、これら 2 つに加えて、状態が確定してないことを示す空白にもすることができます。 ワークシート セル は内容を含まない空白として開始しますが、(とりわけ) TRUE または FALSE の値を保持することができる Microsoft Excel に似ています。 どの時点でも、セルの内容は消去でき、空白状態に返すことができます。
空の文字列 とは、文字が含まれていない文字列を指します。 Len 関数 はこのような文字列のゼロを返し、""
の間に何もない 2 つの二重引用符として数式に書き込むことができます。 一部のコントロールおよびデータ ソースは、空の文字列を使用して "値なし" の条件を示します。 アプリの作成を簡素化するために、IsBlank および Coalesce 関数は空白値または空の文字列の両方をテストします。
IsEmpty 関数のコンテキストでは、空はレコードを含まないテーブルに固有です。 テーブルの構造はそのままで、列 の名前を付けて完了している場合がありますが、テーブルにはデータがありません。 テーブルは空として開始され、レコードを取り入れるともう空ではなくなり、次にレコードを削除して再度空にすることができます。
Note
切り替えの期間にいます。 これまでは、空白を使用してエラーをレポートし、エラーから有効な "値なし" を区別することができませんでした。 このため、現時点で、空白値の格納は、ローカル コレクションでのみサポートされています。 設定>今後の機能>実験的 で数式レベルのエラー管理実験機能をオンにしておくと、他のデータソースに空白の値を保存することができます。 この機能を完了し、およびエラーからの空白値の適切な分離を完了することに積極的に取り組んでいます。
空白
適用対象: キャンバス アプリ モデル駆動型アプリ Dataverse 数式列
Blank 関数は、空白値を返します。 これを使用して、これらの値をサポートするデータ ソースに NULL 値を格納し、フィールドから値を効果的に削除します。
IsBlank
適用対象: キャンバス アプリ モデル駆動型アプリ
IsBlank 関数は、空白値または空の文字列をテストします。 値が存在しない場合に一部のデータ ソースおよびコントロールが空の文字列を使用するため、テストには、アプリの作成を簡素化する空の文字列が含まれます。 特に空白値をテストするには IsBlank の代わりに if( Value = Blank(), ...
を使用します。 IsBlank 関数は空のテーブルを空白ではないと見なし、IsEmpty を使用してテーブルをテストする必要があります。
既存のアプリに対するエラー処理を有効化する際、IsBlank を IsBlankOrError で置き換えて既存アプリの動向を保存することを検討してください。 エラー処理を追加する前に、空欄 の値は、データベースからの 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 関数を使用してゼロを確認するのと同等です。 IsEmpty と Errors 関数を組み合わせることにより、データ ソース エラーを検査できます。
この IsEmpty の戻り値は、ブール値の true または false です。
構文
空白()
結合( 値1 [, 値2, ... ] )
- 値 – 必須。 テストする値。 各値は、空白でない、および空の文字列でない値が見つかるまで、順番に評価されます。 このポイント以降の値は評価されません。
空白( 値 )
- 値 – 必須。 空白値または空の文字列をテストをする値。
空です( テーブル )
- 表 - 必須。 レコードをテストするテーブル。
使用例
空白
Note
現時点で、次の例はローカル コレクションでのみ機能します。 設定>今後の機能>実験的 で数式レベルのエラー管理実験機能をオンにしておくと、他のデータソースに空白の値を保存することができます。 この機能を完了し、およびエラーからの空白値の分離を完了することに積極的に取り組んでいます。
アプリを最初から作成し、Button コントロールを追加します。
ボタンの OnSelect プロパティを次の数式に設定します。
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを閉じます。
ファイル メニューでコレクションをクリックまたはタップします。
市区町村コレクションが表示され、"シアトル" および "雨" の 1 つのレコードが表示されます。
後ろ向きの矢印をクリックまたはタップして、既定のワークスペースに戻ります。
Label コントロールを追加し、その Text プロパティを次の数式に設定します。
IsBlank( First( Cities ).Weather )
天気 フィールドに値 ("雨") が含まれているため、ラベルには false と表示されます。
2 つ目のボタンを追加し、その OnSelect プロパティを次の数式に設定します。
Patch( Cities, First( Cities ), { Weather: Blank() } )
アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを閉じます。
市区町村の最初のレコードの天気フィールドは空白に置き換えられ、以前あった "雨" は削除されます。
天気フィールドには値が含まれていないため、ラベルには true と表示されます。
Coalesce
計算式 | 内容 | 結果 |
---|---|---|
合体(空白(), 1) | 常に空白値を返す Blank 関数から戻り値をテストします。 最初の引数が空白であるため、空白でない値および空でない文字列が見つかるまで、評価は次の引数で続行されます。 | 1 |
合体( "", "2" ) | 空の文字列である最初の引数をテストします。 最初の引数が空の引数であるため、空白でない値および空でない文字列が見つかるまで、評価は次の引数で続行されます。 | 2 |
合体(空白(), "", 空白(), "", "3", "4" ) | Coalesce は引数リストの先頭から開始し、空白 以外の値と空でない文字列が見つかるまで各引数を順番に評価します。 この場合は、最初の 4 つの引数はすべて空白または空の文字列を返すため、評価は 5 番目の引数に続きます。 5 番目の引数は空白でないおよび空でない文字列なので、評価はここで停止します。 5 番目の引数の値が返され、6 番目の引数は評価されません。 | 3 |
合体( "" ) | 空の文字列である最初の引数をテストします。 最初の引数が空の文字列であり、これ以上引数がないため、関数は空白を返します。 | 空白 |
IsBlank
アプリを最初から作成し、テキスト入力コントロールを追加して FirstName という名前を付けます。
ラベルを追加し、その Text プロパティを次の数式に設定します。
If( IsBlank( FirstName.Text ), "First Name is a required field." )
既定では、テキスト入力コントロールの Text プロパティは "Text input" に設定されています。 プロパティには値が含まれており、空白ではないため、ラベルにはメッセージが表示されません。
テキスト入力コントロールから、スペースを含めたすべての文字を削除します。
Text プロパティには文字が含まれなくなったため、空の文字列であり IsBlank( FirstName.Text ) は true になります。 必須フィールドのメッセージが表示されます。
他のツールを使用して検証を実行する方法については、Validate 関数および データ ソースの操作 を参照してください。
その他の例:
計算式 | 内容 | 結果 |
---|---|---|
空白です(空白()) | 常に空白値を返す Blank 関数から戻り値をテストします。 | 真実 |
空白です( "" ) | 文字が含まれていない文字列。 | 真実 |
IsBlank( "こんにちは" ) | 1 つ以上の文字が含まれている文字列。 | 間違い |
空白( 任意のコレクション ) | レコードが含まれていなくても、コレクション が存在するため、空白ではありません。 空のコレクションを検査するには、代わりに IsEmpty を使用します。 | 間違い |
IsBlank( Mid( "こんにちは", 17, 2 ) ) | Mid の開始文字は文字列の末尾よりも後ろにあります。 結果は、空の文字列です。 | 真実 |
IsBlank( If( false, false ) ) | ElseResult がない If 関数。 条件が常に false になるため、この If は常に空白を返します。 | 真実 |
IsEmpty
アプリを最初から作成し、Button コントロールを追加します。
ボタンの OnSelect プロパティを次の数式に設定します。
収集(アイスクリーム、 { フレーバー:「ストロベリー」、数量: 300 }、 { フレーバー:「チョコレート」、数量: 100 } )
アプリをプレビューし、追加したボタンをクリックまたはタップして、プレビューを閉じます。
IceCream という名前のコレクションが作成され次のデータが含まれます。
このコレクションに 2 つのレコードは含まれ、空ではありません。 空です(アイスクリーム) 返品 間違い、そして CountRows(アイスクリーム) 返品 2。
2 つ目のボタンを追加し、その OnSelect プロパティを次の数式に設定します。
クリア(アイスクリーム)
アプリをプレビューし、2 つ目のボタンをクリックまたはタップして、次にプレビューを閉じます。
これで、コレクションは空になりました。
Clear 関数はコレクションからすべてのレコードを削除し、その場合は空のコレクションになります。 空です(アイスクリーム) 返品 真実、そして CountRows(アイスクリーム) 返品 0。
以下の例のように、IsEmpty を使用して、計算されたテーブルが空かどうかをテストすることもできます。
計算式 | 内容 | 結果 |
---|---|---|
空かどうか([1,2,3]) | 単一列テーブルに 3 つのレコードが含まれており、したがって、空ではありません。 | 間違い |
空です([]) | 単一列テーブルにはレコードが含まれず、空です。 | 真実 |
空です( フィルター( [ 1, 2, 3 ], 値 > 5 ) ) | 単一列テーブルに 5 より大きい値が含まれていません。 フィルターからの結果にはレコードが含まれておらず、空です。 | 真実 |