Power Apps 空白とNULLと空について詳しく調べてみた!|NULLやBlank、Emptyの扱いがけっこう独特

Power AppsのnullやらBlankの扱いがC#と結構違ったので、改めて調べた内容をメモ。

※この記事は以下の公式情報(2020/7/2)に書いてある内容を砕いて書いたものです。確実な情報を求める場合は公式を参照してください。
Blank、Coalesce、IsBlank、および IsEmpty 関数 - Power Platform
Blank、Coalesce、IsBlank、IsEmpty 関数の構文と例を含む参照情報。
スポンサーリンク

概要

Power Appsにおいて、「空白」とは「値がない」または「不明な値」の仮置きです。
例えば選択されていないコンボボックスのSelectedプロパティは空白になります。

さらに、Power Appsではbool値もtrue、falseの他に空白という値を持つことができます
Excelを思い浮かべてみてください。セルの内容は消すことができますよね?

ちなみに、空(Empty)はレコードを含まないテーブルを指します

注意:
現在空白とかの扱いは切り替えの期間にいます。エラー処理とかでいまいちなことがあるので、空白値の格納はローカルコレクションでのみ使えます。

今後空白とかの扱いは変わるかもしれません。

内容

値として「空白」を使いたい場合は、Blank関数を使いましょう。
Blank関数の代入はNULL代入のようなものです。

空白かどうかをチェックするときにIsBlank関数を使いたくなると思いますが、検討が必要です。
IsBlank関数は敏感なので「空白」の他に「空の文字列」も反応しちゃいます。

もし、空白か?だけを調べたければ、

if(調べたい値 = Blank())

みたいな感じでBlank関数でif文を作りましょう。

Coalesce関数は、引数を順番に見ていって最初にある「空白」や「空の文字列」以外の値を返します。
Coalesce関数はわがままなので、引数はすべて同じ種類の値じゃないとだめです。数字と文字列を一緒に渡さないでください。

IsEmpty は (CountRows() == 0) と一緒です。
BlankとEmptyは異なるので、気を付けましょう。

構文

詳しい使い方はそれぞれの公式ページをご参照ください。

Blank()
Coalesce(Value1[, Value2…])
IsBlank(Value)
IsEmpty(Table)

  • IsBlank(“Rainy”) => false
  • IsBlank(Blank()) => true
  • Coalesce(Blank(),1) => 1
  • Coalesce(“”, 2) => 2
  • Coalesce(Blank(),””,Blank(),””,3,4) => 3
  • Coalesce(“”) => Blank()
  • IsBlank(Blank()) => true
  • IsBlank(“”) => true
  • IsBlank(“Hello”) => false
  • IsBlank(何らかのコレクション) => false
  • IsBlank(Mid(“Hello”), 17, 2) => false

※Helloに真ん中から17番目の文字は存在しないため

  • IsBlank(if(false,false)) => true

※if関数の仕様が
「どの条件もtrueではなく、どの一致も見つからない、および既定の結果を指定しない場合は空白を返す
なため。

※ifについてはこちら
Power Apps 今更だけどPower Appsのifを調べてみた

  • IsEmpty([1,2,3]) => false
  • IsEmpty([]) =>true
  • IsEmpty(Filter([1,2,3],Value>5)) => true

※5以上の値が配列にないため

まとめ

Power AppsにおいてBlankはNullのようなもの。でもIsBlank関数は空文字(””)も反応してしまう。
IsEmpty関数はテーブルに使う。空文字とかは反応しない。IsEmpty(“”)はfalse。

関連記事

コメント

タイトルとURLをコピーしました