【Power Apps】LookUp関数の使い方:戻り値、複数条件、使用例

時計 2023.05.14 / 時計

【Power Apps】LookUp関数の使い方:戻り値、複数条件、使用例

記事ではMicrosoftのPower Appsにおける、LookUp関数使い方について詳しく解説していきます。

Power Appsでビジネスアプリを開発する際、LookUp関数は必ず使用する関数の一つです。基本的な関数で利用頻度が高い関数ですが、LookUp関数での複数条件や戻り値についてなど詳しく理解している人は少ないです。

LookUp関数は使い方によって戻り値が大きく異なる特徴を持っています。LookUp関数について詳しく理解することで、アプリ開発がよりスムーズになるはずです。

ぜひ本記事を通して、LookUp関数について理解を深めてください。

Power Appsについて詳しく知りたい方は以下記事をご参照ください。

LookUp関数

LookUp関数とは

LookUp関数は指定したテーブルから条件を満たす最初のレコードを抽出する関数です。

Filter関数やSearch関数は指定したテーブルから条件を満たすものをすべて抽出して返しますが、LookUp関数は条件を満たした最初のレコード1つのみを返します。

注意

LookUp関数は指定した条件を満たすレコードが複数あった場合でも最初に見つけた1レコードのみを返します。条件を満たしたレコード数が知りたい場合はFilter関数などを使用します

テーブルに指定した条件を満たすレコードが存在しなかった場合、LookUp関数は空を返します。返された値が空かどうかを判定したい場合はIsBlank関数を使用します。

LookUp関数による戻り値は引数の指定方法によって大きく異なる特徴を持っています。LookUp関数の戻り値については後述しております。

LookUp関数の特徴
  • 最初に検出したレコードを返す
  • 条件を満たすレコードが複数あっても1レコードのみを返す
  • 条件を満たすレコードがなかった場合は空を返す
  • 引数の指定方法により大きく異なる

LookUp関数の構文

LookUp関数の構文は以下の通りです。

構文

LookUp(テーブル, 条件, [列または数式])

引数 説明
テーブル 入力は必須。検索対象のテーブルを指定
条件 入力は必須です。検索したいレコードの条件を指定
列または数式 省略可。指定することで指定列のみが返されます。指定しない場合はフルレコードが返されます。数式を入れて計算もできます

第一引数のテーブルにはSharePointリストやコレクションを指定することが多いです。テーブルに指定するものはテーブル型であればよいので、Sort関数やSplit関数の戻り値を指定することもできます。

私の場合

PowerAppsでビジネスアプリを作成する場合、データベース(テーブル)にはSharePointリストを利用します。SharePointのリストについては以下記事をご参照ください。

第二引数の条件には「列名 = 値」というような式で指定することがほとんどです。

LookUp関数による戻り値

LookUp関数による戻り値は引数の指定方法によって以下に示す3つあります。

LookUp関数による戻り値
  • レコード
  • フィールド値
  • 数式による計算結果

各戻り値の取得方法や使用用途について見ていきましょう。ここでは以下のテーブルFruitsを使用して解説していきます。

PowerApps:使用するテーブル

LookUp関数の戻り値:レコード

LookUp関数で第一引数と第二引数の2つのみを指定すると戻り値としてレコードを返します。戻り値の型名はレコード型です。

LookUp(テーブル, 条件)

例えばテーブルFruitsからNameがAppleのレコードを取得したい場合は次のようにLookUp関数を使用します。

PowerApps:Appleのレコードを取得
LookUp(Fruits, Name="Apple")

LookUp関数の戻り値:フィールド値

LookUp関数で第三引数に列名を指定することで条件を満たした列のフィールド値を返します。

LookUp(テーブル, 条件, 列名)

例えばテーブルFruitsからNameがAppleのレコードから列Priceの値を取得したい場合は次のようにLookUp関数を使用します。

PowerApps:Appleのレコードから列Priceの値を取得
LookUp(Fruits, Name="Apple", Price)

LookUp関数の戻り値:数式による計算結果

LookUp関数の第三引数に数式を指定することでその演算結果を戻り値として返します。

LookUp(テーブル, 条件, 数式)

例えばテーブルFruitsからNameがAppleのレコードのPriceとTaxを足した値を取得したい場合は次のようにLookUp関数を使用します。

LookUp(Fruits, Name="Apple", Price + Tax)

LookUp関数:テキストラベルにレコードのフィールド値を表示する方法

テキストラベルにレコードのフィールド値を表示する方法を解説します。ここではPower AppsのキャンバスアプリとSharePointのリストを使って解説していきます。使用するリストは次図の通りです。

SharePoint:使用するリスト

テキストラベルにフィールド値を表示する方法は以下2つあります。

  • LookUp関数の第三引数でフィールド値の列を指定する
  • LookUp関数の後に列名を指定する

例えばNameが田中三郎のDepartmentをキャンバスアプリのテキストラベルに表示するには以下いずれかの記述をします。

PowerApps:Nameが田中三郎のDepartmentをキャンバスアプリのテキストラベルに表示 PowerApps:Nameが田中三郎のDepartmentをキャンバスアプリのテキストラベルに表示(LookUp関数後に列名を指定)

どちらの方法を使っても得られる結果は同じです。ちなみにテキストラベルにLookUp関数の戻り値レコードを指定するとエラーが発生します。

PowerApps:LookUp関数のエラー

テキストラベルにはテーブル値やレコード値は表示できませんので注意してください。

LookUp関数:複数条件でレコードの検索を行う

LookUp関数の第二引数には検索を行うための条件を指定します。この条件を複数指定したい場合はAnd演算子またはOr演算子を使用します。

例えばNameが田中三郎かつDepartmentが経理のNameをテキストラベルに表示したい場合は以下のように記述します。

LookUp(employeeList, And(Name="田中三郎", Department="経理")).Name

DepartmentがITまたは経理のNameをテキストラベルに表示したい場合は以下のように記述します。(最初に検出されたレコードのNameが表示されますので、リストemployeeListの場合は田中一郎が表示します)

LookUp(employeeList, Or(Department="IT", Department="経理")).Name

まとめ

本記事「【Power Apps】LookUp関数の使い方:戻り値、複数条件、使用例」はいかがでしたか。

LookUp関数はPower Appsでビジネスアプリを作成する際にほぼ必ず使用する関数の一つです。ぜひ使いこなせるようになって、アプリ開発に役立ててください。