PowerApps|LookUpとifを組み合わせた3つの使用例

PowerAppsのキャンバスアプリで、
LookUp関数は多くの場面で活躍してくれます。

中でも、If関数とは、よく組み合わせて使うことが多いです。

今回は、LookUp関数とIf関数を組み合わせて使う使用例を紹介します。

紹介するコードは実際に私が実装して試したものですので、安心して参考にしてもらえればと思います。

では、早速みていきましょう。

LookUp関数の基本の使用方法

PowerApps の LookUp 関数は、
データソース内で特定の条件を満たす最初のレコードを検索するために使用されます。

全てのレコードを抽出するには、filter関数を使用します。

LookUpの基本的な構文は以下のようになります。

LookUp(DataSource, Condition).Field
  • DataSource: 検索を行うデータテーブルを指定します。
  • Condition: レコードが条件を満たすかどうかを評価する式です。
  • Field: 条件を満たすレコードから返される値を指定します。

簡単に使用する場合は以下のようにします。

例えば、Employees というデータソースがあり、特定の従業員IDを持つ従業員の名前を検索したい場合、以下のような式が使用できます。

使用例

LookUp(Employees, EmployeeID = 123).Name
あべべ

ここから、ifとLookUpを組み合わせた使用例を見ていきます!

【使用例①】条件を満たすレコードが存在する場合のみ実行

一番よく使う方法として、レコードが存在する場合にのみ値を返すようにすることです。

If(
    IsBlank(LookUp(DataSource, Condition)),
    "条件を満たすレコードはありません",
    LookUp(DataSource, Condition).Field
)

IsBlank(LookUp(DataSource, Condition))

最初のもし、LookUpにヒットしなければ、IsBlankメソッドが「true」になります。

「true」の場合には、「条件を満たすレコードはありません」が表示されます。

【使用例②】条件に基づくフィールド値の更新

特定の条件を満たすレコードが存在する場合に限り、
そのレコードの特定のフィールド値を更新する例です。

If(
    Not(IsBlank(LookUp(Orders, OrderID = TextInput_OrderID.Text))),
    Patch(Orders, LookUp(Orders, OrderID = TextInput_OrderID.Text), {Status: "処理済み"})
)

条件に合うレコードに対して、Statusを「処理済み」に変更する処理をします。

Notをつけることで、レコードがある場合に対してのみPatch処理を行うことができます。

【使用例③】複数条件の組み合わせ

LookUp 関数で
複数の条件を組み合わせて使用し、それに基づいて特定のアクションを実行する例です。

If(
    Not(IsBlank(LookUp(Products, ProductID = TextInput_ProductID.Text && Stock > 0))),
    "在庫あり",
    "在庫なし"
)

この例では、ユーザーが入力した商品IDを持つ商品が Products データソースに存在し、

かつ在庫数が0より大きい場合に「在庫あり」と表示します。それ以外の場合は「在庫なし」と表示します。

まとめ

今回は、If関数とLookUp関数の使用方法について紹介しました。

これらの組み合わせでif文とLookUpをうまく活用することができるようになります。

レコードが存在するかどうかを確かめるのには、LookUpは活用できますので、ぜひ使ってみてください。

では、また!

(Visited 197 times, 1 visits today)