データをフィルター処理する

完了

ビジネス アプリケーションの領域では、データ表現の精度が非常に重要です。 これを実現するには、フィルターや検索などの関数を利用します。 これらの関数をデータ ソースに委任して処理することにより、情報フローが合理化されます。

ここでの委任とは、これらの関数がサーバー側で選択的なフィルターとして機能することを意味します。 結果? アプリケーションは必要なデータのみを選択的に取得して処理し、ユーザー エクスペリエンスを向上させます。 この方法により、データ送信が削減されるだけでなく、ユーザーの効率も最適化されます。

前のモジュールでは、ギャラリーにデータ ソースを追加する方法について説明しました。 このモジュールでは、ユーザーに関係のある内容を示すためにデータを整形することでそれらの概念を拡張します。

Filter 関数を使用してデータをフィルター処理する

Filter 関数は、データの成形に最もよく使用される関数です。 Filter を使用して、必要なデータのみを返すことができる単純なクエリを作成できます。 たとえば、データ ソースに、プロジェクトの追跡状態を Yes または No の値で表す、IsActive と名付けられたテキスト列があり、ギャラリーの Items プロパティで次の式を使用して、データをフィルター処理できるとします。

Filter(YourDataSourcetable, IsActive = "Yes")

テーブルのすべての行を表示する代わりに、[IsActive] 列 が Yes である行だけがギャラリーに表示されます。 これにより、ユーザーは並べ替える行が少なくなり、アプリはダウンロードするデータ量が減って速くなります。

And 演算子

フィルター処理を次のレベルに引き上げるには、演算子を使用してより複雑なフィルターを作成する必要があります。 一般的に使用される方法の 1 つは、And 演算子を使用してフィルター内の複数の条件を結合することです。 And 演算子を使用する場合、フィルターを有効にするには、すべての条件が true に評価される必要があります。 たとえば、次のクエリを使用することで、IsActiveYesRegionNorth の場合、すべての行を示すために前の例を拡張できます。

Filter(YourDataSourcetable, IsActive = "Yes" And Region = "North")

この式では、IsActive が Yes で Region が North であるすべての行が返されます。 式で And 演算子を使用するときは、大文字にする必要があります。

Or 演算子

フィルターに不可欠なもう 1 つの演算子である Or 演算子を紹介します。 And 演算子と異なり、Or 演算子では行を取得するために式の 1 つのみが true である必要があります。 And 演算子と同様に、フィルター条件内で正しく機能させるには、Or 演算子を大文字にすることが重要です。

前の例を拡張して、Region が North または West であるすべての行を表示しようとするケースがあるとします。 そのようなクエリを構築するには、Or 演算子を使用します。

Filter(YourDataSourcetable, Region = "North" Or Region = "West")

この式では、Region が North または West であるすべての行が返されます。 また、「Region = "North"」または「Region = "West"」という式の構文にも注意してください。 よくある間違いは、Region = 「North」 Or 「West」と書いてしまう場合です。 その式は間違いです。

結合演算子

複雑な条件が要求されるシナリオでは、演算子を組み合わせることで、より高度なロジックが可能になります。 以前の例を考えてみましょう。IsActive が Yes で Region が North または West である行をデータ ソースから取得するように、フィルター処理を行いたい場合です。

これを実現するには、式に括弧を組み込むことが不可欠になります。 式は次のようになります。

Filter(YourDataSourcetable, IsActive = "Yes" And (Region = "North" Or Region = "West"))

式では、かっこが最初に評価されます。 この式では、Region が North または West かどうかが最初に決定されます。 どちらかの評価が true の場合、右側は true になります。 次に、式は [IsActive] 列の値を検査します。 それが「Yes」の場合、行は一致し、Filter 関数によって返されます。 Microsoft Power Apps では、さまざまな演算子と、データを成形するためのそれらの入れ子がサポートされています。

Power Apps で利用できるさまざまな演算子の詳細は、こちらのドキュメントでPower Apps の演算子とデータ型について説明しています。 他には、greater than、less than、not、in、exact in などの演算子があります。 また、演算子を評価するときは、委任について理解する必要があります。 演算子が異なると、異なるデータ ソースを使用することで委任の動作が異なります。 データ ソースとその演算子の一覧については、キャンバス アプリでの委任について をご覧ください。