【Power Apps for Teams の小技】ギャラリーやデータテーブルを日付範囲でフィルタリングする方法

Microsoft Power App(以下、Power Apps)は、専門性の高い技術や開発の経験を持たなくてもビジネス ニーズに対応するモバイル アプリや Webアプリを比較的簡単に作成できるローコード ツールです。

Microsoft Teams(以下、Teams)では、Power Appsアプリを使用して、該当するチームのメンバー全体又は権限を有するメンバーが利用できるアプリを作成することができます。

本サイトでは、TeamsのPower Appsを利用してアプリを作成する上で役に立つちょっとしたテクニックを紹介しています。

はじめに

Power Apps における日付フィルタリングの利点は多岐にわたります。例えば、営業チームが特定の期間に成約した案件のみを表示したい場合や、イベント管理者が特定のイベントの参加者データを抽出したい場合など、日付範囲でのフィルタリングは非常に有効です。

なお、この記事は、Power Apps を起動してアプリを作成し、スクリーン上にコントロールを配置するなど、ある程度Power Apps の基本操作ができる方を対象にしています。Power Apps の基本操作から学びたい方は、別途関連サイトや書籍を参考にしていただくことをおすすめします。

日付範囲でフィルタリングするアプリの例

アプリには、ギャラリーまたはデータテーブルコントロールと日付範囲を選択できる2つの日付ピッカーコントロールを配置します。ギャラリーまたはデーターテーブルコントロールには、日時フィールドを持つデータソースを指定します。

以下は、生徒の面談記録の一覧を面談日の範囲でフィルタリングするアプリの例です。

powerapps-daterange-filtering01

itemプロパティの設定

ギャラリーまたはデータテーブルコントロールのitemsプロパティに以下のコードを設定します。

With(
    {myEndDate: DateValue(DatePicker_To.Value) + Time(23, 59, 59)},
    Sort(
        Filter(データーソース,
            日時フィールド>=DatePicker_From.Value&&日時フィールド<=myEndDate
        ),
        日時フィールド,SortOrder.Descending
    )
)

この式は、指定された日付範囲に基づいてデータをフィルタリングし、その結果をソートします。それぞれの部分の詳細は次のとおりです。

With関数:With関数は、一時的な変数を作成し、その変数を後続の式で使用するために使われます。ここでは、myEndDate という変数を定義しています。

myEndDate変数:myEndDate 変数は、ユーザーが選択した終了日(DatePicker_To.Value)に1日の終わりの時間(23時59分59秒)を表しています。これにより、フィルタリングする日付範囲が終了日の23時59分59秒までを含むようになります。

DateValue関数:DateValue関数は、日付ピッカーから取得した値をDate型に変換します。この変換は、時間部分が 00:00:00 になります。

Time関数:Time関数は、指定された時間(時、分、秒)に基づいて時間を作成します。ここでは、終了日の最後の時間を指定するために使用されています。

Filter関数:Filter 関数は、データソースから特定の条件に一致するレコードを抽出するために使われます。ここでは、日時フィールド がユーザーが指定した開始日(DatePicker_From.Value)と myEndDate変数で定義された終了日の間にあるレコードを抽出しています。

Sort関数:Sort関数は、結果セットを特定のフィールドに基づいてソートするために使用されます。この例では、日時フィールドに基づいて降順でソートしています。

まとめ

このように、ギャラリーやデータテーブルを日付範囲でフィルタリングする機能を簡単に実装することができます。ポイントは、終了日付に23時間59分59秒を加えることで、その日の最後の時間までデータを含むようにすることです。これにより、ユーザーが選択した日付範囲の全期間をカバーすることができます。

実際のアプリケーションでは、日付範囲に加えて、顧客名や地域、商品カテゴリなどのさまざまな条件でデータをフィルタリングすることが求められます。

Power Appsを活用することで、ユーザーはプログラミングの知識がなくても、有益なアプリケーションを素早く作成し、ビジネスプロセスを効率化することができます。ぜひアプリ開発にチャレンジしてみてください。