【Power Apps】Blank関数、Coalesce関数、IsBlank関数、IsEmpty関数とは、使い方

**Blank関数、Coalesce関数、IsBlank関数、IsEmpty関数**について概要と活用例を紹介します。

## 紹介する内容  
- **Blank関数とIsBlank関数の空白判定の差異**  
- **IsEmpty関数とIsBlank関数の違い**  
- **Coalesce関数の活用方法**  

似たような名前ですが、それぞれ使い方が異なるので説明します。

---

## 関数説明・構文 (一部Learnより引用)

### Blank関数  
nullと同じ値を出力する引数なし関数です。  
**""(空白の文字列)とは異なります。**

> *空白* の値を返します。データ ソースに NULL 値を挿入するために使用できます。  
> [公式より引用](https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-isblank-isempty)  

```plain
Blank()
```

---

### Coalesce関数  
引数に入力した値の中で**最初に空白ではない値**を出力します。  
`If(IsBlank(), ~)` のような処理を短縮できます。

> *空白* 以外の値は変更せずに、*空白* の値を置き換えます。  
> [公式より引用](https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-isblank-isempty)  

```plain
Coalesce(値1 [, 値2, ... ] )
```

---

### IsBlank関数  
**レコードや値**の空白判定をする関数です。

> blank の値がないかを調べます。  
> [公式より引用](https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-isblank-isempty)  

```plain
IsBlank(値)
```

---

### IsEmpty関数  
**テーブル**の空白判定をする関数です。

> 空のテーブルがないかを調べます。  
> [公式より引用](https://learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-isblank-isempty)  

```plain
IsEmpty(テーブル)
```

---

## 使い方

### Blank関数とIsBlank関数の空白判定の差異  
- **Blank関数** は `null` 値を扱うため、`""`(空白文字列)とは異なります。結果は `false` になります。  
- **IsBlank関数** は `""` でも `Blank()` でも `true` になります。  

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/9984ce1c-94f0-e945-1bed-72c4fe6d383a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/e33dd781-f2b2-7206-1051-217f31395aef.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/2bc2a40c-2c68-239c-5b37-1719b2f8e002.png)


---

### IsEmpty関数とIsBlank関数の違い  
- **IsEmpty関数** はテーブルの空白判定をします。  
- **IsBlank関数** はレコードまたは値の空白判定をします。  

**空白のテーブル**では `IsEmpty` が `true` になり、`IsBlank` は `false` になります。  
**空白の値やレコード**では `IsEmpty` はエラーになります。  
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/3a01dc39-fd84-4cf1-6bf3-8f850c4f5724.png)

---

### Coalesce関数の活用方法  
**最初に空白ではない値を出力**します。  
`IsBlank` 同様に `""` も空白として処理されます。  

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/1afd660c-1064-0ac9-2dab-5f7e8266a2e7.png)

#### **LookUp関数の結果が存在する場合のみ結果を表示**  
存在しない場合は `"該当なし"` を表示する例です。  

```plain
If(
    IsBlank(LookUp(SampleList, タイトル = "iPhone 16", タイトル)),
    "該当なし", 
    LookUp(SampleList, タイトル = "iPhone 16", タイトル)
)

Coalesce(LookUp(SampleList, タイトル = "iPhone 16", タイトル), "該当なし")
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/3baeb78c-0adb-a31d-f080-cd7d91e4fb44.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/196b621f-db2c-a997-ca76-275e5786597c.png)

#### **条件分岐で行の追加/更新を行う場合**  
型の異なる値や動作の関数を並列で入力できないため、`If` を使用します。  

```plain
If(
    IsBlank(LookUp(SampleList, タイトル = "iPhone 16", タイトル)), 
    Collect(SampleList, {タイトル:"iPhone 16"}),
    UpdateIf(SampleList, タイトル = "iPhone 16", {タイトル:"iPhone 16"})
)
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3618051/71404090-9250-a7de-6614-b6c0409b2a05.png)

---

## まとめ  
- **Blank関数**：`null` 値を出力  
- **IsBlank関数**：値やレコードの空白を判定  
- **IsEmpty関数**：テーブルの空白を判定  
- **Coalesce関数**：最初に空白ではない値を出力  

用途に応じて関数を使い分けることで、効率的な条件分岐やデータ処理が可能になります。  

## 元記事  

https://powerplatformnikki.com/blankcoalesceisblankisempty/