PowerAppsのLookUp関数の使い方と活用方法を徹底解説

「PowerAppsのLookUp関数ってどう使うの?」

データの検索や特定のレコードの取得を簡単に行いたい人にとって、LookUp関数は欠かせないツールです。

しかし、Filter関数やSearch関数との違いも分からず、適切に使い分けられていないことも多いのではないでしょうか?

この記事では、LookUp関数の基本構文から、実際の活用方法、他の関数との違いまでを詳しく解説します。

さらに、ドロップダウンリストやギャラリーとの連携方法やエラーハンドリングのコツも紹介。

LookUp関数を正しく使いこなし、PowerAppsでのレコード検索をスムーズに行いましょう。

PowerAppsをもっと効率的に学びたいと考えている方には、Udemyのオンライン講座がおすすめです。
初心者向けのコースが充実しており、動画で実践的に学べるため、独学よりもスムーズにスキルを習得できます。
特に、PowerAppsの基本操作や関数の使い方を体系的に学びたい方に最適です。

この記事を書いた人
  • 一部上場企業に勤める会社員
  • ITエンジニア未経験
  • 2024年7月から社内DX担当に異動
  • 同時期にPowerPlatformを始める
  • 効率的に学ぶためにブログスタート
ちょびです!
目次

LookUp関数とは

PowerAppsのLookUp関数は、指定したテーブル内から条件に一致する最初のレコードを取得する関数です。

ExcelのVLOOKUP関数と似ており、特定のデータを検索し、必要な情報を取得する際に活用されます。

データソースはSharePoint、Dataverse、Excel、SQL Serverなどに対応しています。

この関数を使うことで、入力フォームの自動補完や動的なデータ取得が可能になり、アプリの利便性が向上します。

基本構文

LookUp関数の基本的な構文は以下の通りです。

LookUp(テーブル, 条件 [, 取得するフィールド])
  • テーブル: 検索対象のデータソース
  • 条件: 一致する最初のレコードを取得する条件
  • 取得するフィールド(省略可): 指定したレコードの特定のフィールドを取得(省略時はレコード全体)

例えば、”Products”テーブル内で”ProductName”が”Widget”の商品の価格を取得する場合

LookUp(Products, ProductName = "Widget", Price)
// ProductNameが"Widget"のPriceを取得

構文の説明と各引数の詳細

1. テーブル

LookUp関数の検索対象となるデータソースを指定します。

SharePointリスト、Dataverse、Excelテーブルなどが使用できます。

2. 条件

指定した条件に一致する最初のレコードを取得します。

LookUp(Orders, CustomerID = 123 And Status = "Shipped")
// CustomerIDが123かつStatusが"Shipped"のレコードを取得

3. 取得するフィールド

特定のフィールドの値のみを取得できます。省略するとレコード全体が返されます。

LookUp(Orders, CustomerID = 123 And Status = "Shipped")
// CustomerIDが123かつStatusが"Shipped"のレコードを取得

使用時の注意点

1. 条件に一致するデータがない場合

データが見つからない場合、Blankが返されるため、事前にチェックが必要です。

LookUp(Orders, CustomerID = 123 And Status = "Shipped")
// CustomerIDが123かつStatusが"Shipped"のレコードを取得

2. 複数の一致するレコードがある場合

LookUp関数は最初の1件しか取得しません。複数取得したい場合はFilter関数を使います。

Filter(Orders, CustomerID = 123)
// CustomerIDが123のすべてのレコードを取得

3. データソースのパフォーマンス

大量のデータがある場合、LookUp関数はパフォーマンスに影響を与えることがあります。データソースにインデックスを設定するなどの対策が必要です。

LookUp関数と他の関数との違い

PowerAppsでは、データを検索・取得するための関数がいくつかあります。

その中でもLookUp関数、Filter関数、Search関数はよく使用されます。

これらの関数の違いを理解し、適切に使い分けることで、アプリの動作を最適化できます。

Filter関数との違い

Filter関数は、指定した条件に一致する複数のレコードを返します。

一方、LookUp関数は条件に一致する最初の1レコードのみを返します。

Filter(Products, Category = "Electronics")
// Categoryが"Electronics"のすべてのレコードを取得

LookUp(Products, Category = "Electronics", ProductName)
// Categoryが"Electronics"の最初のレコードのProductNameを取得

Filter関数は一覧表示に適しており、LookUp関数は特定の値を取得する場合に使用します。

Search関数との違い

Search関数は、指定した列の部分一致でデータを検索し、複数のレコードを返します。

一方、LookUp関数は完全一致で検索し、最初の1レコードのみを返します。

Search(Products, "Phone", "ProductName", "Description")
// "Phone"を含むProductNameまたはDescriptionのレコードを取得

LookUp(Products, ProductName = "iPhone", Price)
// ProductNameが"iPhone"の最初の商品のPriceを取得

部分一致検索が必要な場合はSearch関数、特定のデータを1件だけ取得したい場合はLookUp関数を使います。

スクロールできます
関数取得するデータ検索方法用途
LookUp最初の1レコード完全一致単一のデータ取得
Filterすべての一致レコード完全一致一覧表示やフィルタリング
Searchすべての一致レコード部分一致ユーザー検索やフリーテキスト検索

適切に使い分けることで、PowerAppsのアプリがより効率的に動作します。

LookUp関数における条件式

PowerAppsのLookUp関数では、条件式を使って特定のレコードを抽出します。

条件式には、比較演算子や論理演算子、その他の関数を組み合わせることで、柔軟な検索が可能になります。

比較演算子

比較演算子は、2つの値を比較する際に使用します。

スクロールできます
演算子説明使用例
=等しいLookUp(Products, Price = 1000)
<>等しくないLookUp(Products, Category <> “Electronics”)
>より大きいLookUp(Products, Price > 5000)
>=以上LookUp(Products, Price >= 1000)
<より小さいLookUp(Products, Price < 5000)
<=以下LookUp(Products, Price <= 1000)

論理演算子

論理演算子は、複数の条件を組み合わせる際に使用します。

スクロールできます
演算子説明使用例
&& / Andすべての条件が真の場合LookUp(Products, Category = “Electronics” && Price > 5000)
`/Or`
! / Not条件の否定LookUp(Products, !(Category = “Electronics”))

その他の関数

条件式には、演算子だけでなく、関数も活用できます。

スクロールできます
関数説明使用例
IsBlank()値が空白かを判定LookUp(Customers, IsBlank(Email))
IsEmpty()コレクションやテーブルが空かを判定LookUp(Orders, IsEmpty(Items))
StartsWith()文字列が特定の文字で始まるかを判定LookUp(Products, StartsWith(ProductName, “Pro”))
EndsWith()文字列が特定の文字で終わるかを判定LookUp(Products, EndsWith(ProductName, “Max”))
Contains()文字列が特定の文字を含むかを判定LookUp(Products, Contains(Description, “最新モデル”))

これらの演算子や関数を適切に組み合わせることで、LookUp関数の条件式を柔軟に構築できます。

用途に応じた設定を行い、効率的なデータ取得を実現しましょう。

LookUp関数の戻り値とその特性

PowerAppsのLookUp関数は、指定した条件に一致する最初のレコードや特定のフィールド値を取得するために使用します。

使用方法や条件によって、戻り値の特性が変わります。

レコード全体を取得する場合

LookUp関数で条件を指定し、取得するフィールドを省略すると、条件に一致する最初のレコード全体が返されます。

LookUp(Products, Category = "Electronics")
// Categoryが"Electronics"の最初のレコード全体を取得

この場合、Productsテーブル内でCategoryが”Electronics”に一致する最初のレコードが返され、そのレコードのすべてのフィールドにアクセスできます。

特定のフィールド値を取得する場合

LookUp関数の第3引数に取得したいフィールド名を指定すると、条件に一致する最初のレコードの特定のフィールド値のみを取得できます。

LookUp(Products, Category = "Electronics", ProductName)
// Categoryが"Electronics"の最初のレコードのProductNameを取得

この例では、Categoryが”Electronics”の最初のレコードのProductNameフィールドの値が返されます。

特定のフィールド値のみを必要とする場合に有効です。

条件に一致しない場合

指定した条件に一致するレコードが存在しない場合、LookUp関数は空白(Blank)を返します。

これにより、データが存在しないことを明示的に確認できます。

LookUp(Products, Category = "NonExistentCategory", ProductName)
// 条件に一致するレコードがないため、空白を返す

この特性を利用して、条件に一致するレコードが存在しない場合の処理を適切にハンドリングすることが重要です。

LookUp関数の使用例

PowerAppsのLookUp関数は、指定した条件に一致する最初のレコードや特定のフィールド値を取得するために使用します。

以下に、さまざまな使用例を紹介します。

単一条件でのレコード取得

LookUp関数を使用して、特定の条件に一致する最初のレコードを取得できます。

LookUp(Products, ProductName = "Laptop")
// ProductNameが"Laptop"の最初のレコードを取得

この例では、ProductsテーブルからProductNameが”Laptop”である最初のレコードを取得します。

複数条件でのレコード取得

LookUp関数では、複数の条件を組み合わせてレコードを検索できます。

LookUp(Products, ProductName = "Laptop")
// ProductNameが"Laptop"の最初のレコードを取得

この例では、Categoryが”Electronics”であり、Priceが1000未満の最初のレコードを取得します。

数式を用いた計算結果の取得

LookUp関数の第3引数に数式を指定することで、計算結果を直接取得できます。

LookUp(Products, ProductID = 123, Price * Quantity)
// ProductIDが123のレコードのPriceとQuantityの積を取得

この例では、ProductIDが123のレコードのPriceとQuantityを掛け合わせた結果を取得します。

LookUp関数と他の関数の組み合わせ

PowerAppsでは、LookUp関数を他の関数と組み合わせることで、データの検索やエラーハンドリングをより柔軟に行えます。

以下に、具体的な組み合わせ例を紹介します。

Filter関数やSearch関数との併用

Filter関数やSearch関数は、特定の条件に一致する複数のレコードを抽出する際に使用します。

これらの関数とLookUp関数を組み合わせることで、データの検索やフィルタリングを効率的に行えます。

Filter関数: 条件に一致するすべてのレコードを取得します。

Filter(Products, Category = "Electronics")
// Categoryが"Electronics"のすべてのレコードを取得

Search関数: 特定の文字列を含むレコードを検索します。

Search(Products, "Laptop", "ProductName")
// ProductNameに"Laptop"を含むレコードを検索

LookUp関数は、条件に一致する最初のレコードを取得するため、単一の結果が必要な場合に適しています。

例えば、ProductIDが123の製品を取得する場合は以下のようになります。

LookUp(Products, ProductID = 123)

一方、Filter関数やSearch関数は、複数の結果を取得する際に使用します。

例えば、Categoryが”Electronics”の製品をすべて取得する場合は以下になります。

Filter(Products, Category = "Electronics")

これらの関数を適切に使い分けることで、データの取得や表示を効率的に行えます。

IsBlank関数を用いたエラーハンドリング

LookUp関数を使用してデータを取得する際、条件に一致するレコードが存在しない場合、結果は空白(Blank)となります。

これを適切に処理するために、IsBlank関数を用いてエラーハンドリングを行います。

例えば、特定のCustomerIDに基づいて顧客情報を検索し、その結果が空白であるかを確認する場合は以下の構文がおすすめです。

If(
    IsBlank(LookUp(Customers, CustomerID = 1001)),
    "顧客情報が見つかりません",
    LookUp(Customers, CustomerID = 1001).CustomerName
)

この例では、CustomerIDが1001の顧客情報を検索し、存在しない場合は”顧客情報が見つかりません”と表示し、存在する場合はCustomerNameを表示します。

これにより、データが存在しない場合の適切なエラーハンドリングが可能となります。

LookUp関数の応用

PowerAppsのLookUp関数は、データの検索や抽出だけでなく、ドロップダウンリストやギャラリーの動的なデータ表示、参照列や選択肢列との連携にも活用できます。

これらの機能を組み合わせることで、より柔軟なデータ操作が可能になります。

ドロップダウンリストやギャラリーでの活用方法

ドロップダウンリストやギャラリーでは、LookUp関数を用いることで、ユーザーの選択に応じたデータの取得が可能になります。

ドロップダウンリストでの使用

ドロップダウンのデータ設定のためにItemsプロパティにデータソースを指定し、リストを表示します。

ドロップダウンでユーザーが選択した値をもとに、詳細情報を取得する場合、LookUp関数を用います。

LookUp(Products, ProductName = Dropdown1.Selected.Value, Price)
// ドロップダウンで選択した商品の価格を取得

この設定により、ドロップダウンで選択した商品に対応する価格が自動的に表示されます。

ギャラリーでの使用

LookUp関数はフィルタリングにも応用できます。

ギャラリーのItemsプロパティにLookUp関数を適用し、選択した条件に一致するデータのみを表示できます。

LookUp(Orders, OrderID = Gallery1.Selected.OrderID)
// ギャラリーで選択された注文の詳細を取得

この設定を行うことで、ユーザーがギャラリーのレコードをクリックすると、その詳細情報を別の画面やラベルで表示できます。

LookUp関数を使いこなしてレコード検索に活用しよう!

PowerAppsのLookUp関数は、特定の条件に一致する最初のレコードを取得できる便利な関数です。

データの検索やフォームの自動入力、ギャラリーのフィルタリングなど、さまざまな場面で活用できます。

Filter関数やSearch関数との組み合わせや、IsBlank関数を用いたエラーハンドリングを適切に行うことで、より柔軟なデータ管理が可能になります。

LookUp関数を活用して、PowerAppsのアプリをより効率的に構築しましょう!

PowerAppsはUdemyで学べる!

Udemy
学習スタイルオンライン講座
・動画
・スライド
運営会社株式会社ベネッセコーポレーション
期間購入した講座は無期限で視聴可能
料金1,500円〜29,000円(税込)
サポート年間通してセール多数開催
購入前に無料視聴可能
30日間返金保証 など

Udemyは、オンラインで幅広い分野のスキルを手軽に学べる、世界最大級のオンライン学習プラットフォームです。

PowerAppsだけでなく、PowerAutomateを含むPowerPlatform系以外にも以下のような講座があります。

Udemyで学べるジャンル
  • ビジネス
  • プログラミング
  • デザイン
  • 語学
  • 趣味 など

20万以上のコースから、動画講座で自分のペースで学習できます。

Udemyは不定期ですが頻繁にセールを開催します。
95%以上割引かれて1,500円で購入できる講座もありますよ!

最大95%OFFのセールをチェック! /

よかったらシェアしてね!
目次