Power Appsで部分一致のテキスト検索を実装する方法を説明します。
前方一致や後方一致検索は、StartsWith関数・EndsWith関数が用意されていますが、部分一致検索専用の関数はありません。
いくつか方法があるため、SharePointリストのデータを検索する場合を例に、それぞれの方法を説明します。
Power Appsを体系的に学習したい方は、下記もご覧ください。
匿名で投稿できる目安箱アプリについて知りたい方は、下記もご覧ください。
Teamsを利用して組織内のコミュニケーションを強化したい方は下記もご覧ください。
・【事例付き】Teamsを活用したマネジメントTIPS集
・【マネージャー向け】Teamsアプリを活用した「誰が何を知っているか」の集約・共有 事例集
・【Teamsアプリ活用事例集】メンター制度を置き換えて新人・異動者の育成を効率化する方法
・【問い合わせ管理でお困りの方向け】問い合わせ対応・ナレッジ蓄積へのTeams活用事例集
・【マネジメント・業務把握にお困りの方向け】マネジメント・報告業務へのTeams活用事例集
・【Teamsアプリを活用事例集】週報を自動で収集しサマリー&フィードバックする方法とは
部分一致検索の概要
下記の3つの部分一致検索の方法を説明します。
- Filter関数による部分一致検索
- Search関数による部分一致検索
- Search関数とAddColumn関数による部分一致検索
SharePointリストを検索対象にする場合、それぞれの特徴は下記です。
委任の警告 | 検索可能な列 | 難易度 | |
---|---|---|---|
①Filter関数 | あり | 全て | 易 |
②Search関数 | あり | テキスト型の列のみ | 易 |
③Search関数とAddColumn関数 | なし | 全て | やや難 |
③のSearch関数とAddColumn関数が、少し実装方法が複雑ですが、委任の警告もなしで全ての型の列が検索可能なため、万能だと思います。
下記は、”売上管理表”というSharePointリストのデータをギャラリーに表示させたものです。SharePoint側の列の種類も記載してます。下記のDate列以外を検索対象にする場合を例として、それぞれの検索方法を説明します。
Filter関数による部分一致検索(委任の警告あり)
Filter関数を利用した部分一致検索は、下記のようにin句を利用して実装します。
1 |
Filter(売上管理表,TextInput1.Text in Category.Value || TextInput1.Text in Title || TextInput1.Text in 'Unit price' || TextInput1.Text in Quantity || TextInput1.Text in 'Total price' || TextInput1.Text in 'In charge') |
in句は、左辺の文字列が、右辺に含まれているかどうかを表します。大文字小文字は無視。
ここでは、テキスト入力コントロール(TextInput1.Text)の文字列が各列に含まれているかどうかを、OR条件で確認しています。
これにより部分一致検索できます。
ただし、Filter関数のin句は、委任できないため、警告が表示されます。
データが少ない場合は、警告を無視しても問題ありません。データが多い場合は、「Search関数とAddColumn関数による部分一致検索」を使いましょう。
Search関数による部分一致検索(委任の警告あり)
Search関数を利用した部分一致検索は、下記のように実装します。
1 |
Search(売上管理表,TextInput1.Text, "Title", "Total_x0020_price","Incharge") |
Search関数は、テキスト型の列のみが対象です。SharePointリストの列の種類が「選択肢」「数値」の列は検索対象にできません。「集計値」はできました。
Filter関数とは異なり、列の内部名をダブルクォーテーションで囲んだもので指定します。
下記のように、一部の文字を入力すると候補が表示されるため、正しい列名を入れるようにしましょう。
また、Search関数でSharePointリストを検索する場合は、委任できないため、警告が表示されます。
データが少ない場合は、警告を無視しても問題ありません。データが多い場合は、「Search関数とAddColumn関数による部分一致検索」を使いましょう。
Search関数とAddColumn関数による部分一致検索(委任の警告なし)
Search関数とAddColumn関数を利用した部分一致検索は、下記のように実装します。
1 |
Search(AddColumns(売上管理表,"TempCategory", ThisRecord.Category.Value, "TempTitle",ThisRecord.Title, "TempUnitPrice", Text(ThisRecord.'Unit price'),"TempQuantity", Text(ThisRecord.Quantity),"TempTotalPrice",ThisRecord.'Total price',"TempIncharge",ThisRecord.'In charge'),TextInput1.Text, "TempCategory","TempTitle","TempUnitPrice","TempQuantity","TempTotalPrice","TempIncharge") |
一時的にAddColumn関数でテーブルを作成し、そのテーブルを検索対象として検索します。AddColumn関数は、指定した列を追加して、テーブルとして返す関数です。
これにより、委任の警告なしで検索できます。
また、Text関数により数値をテキストに変換できるため、数値も検索対象にできます。
例えば、Text(ThisRecord.’Unit price’)のように、数値型のUnit price列をテキスト型に変換しています。
上記の例ですと、列が多くて理解しづらいため、下記のシンプルなサンプルデータを例にくわしく解説します。
English | Japanese |
---|---|
ABC | あいうえお |
DEF | かきくけこ |
GHI | さしすせそ |
Search関数は下記のようになります。
1 |
Search(AddColumns(サンプルデータ,"TempEnglish", ThisRecord.English, "TempJapanese",ThisRecord.Japanese),TextInput1.Text, "TempEnglish","TempJapanese") |
AddColumns(サンプルデータ,”TempEnglish”, ThisRecord.English, “TempJapanese”,ThisRecord.Japanese)の部分は、下記のテーブルを返します。
English | Japanese | TempEnglish | TempJapanese |
---|---|---|---|
ABC | あいうえお | ABC | あいうえお |
DEF | かきくけこ | DEF | かきくけこ |
GHI | さしすせそ | GHI | さしすせそ |
そして、上記のテーブルのTempEnglish列、TempJapanese列をSearch関数の検索対象にしています。
この方法の仕組みをイメージできましたでしょうか?
English列、Japanese列を直接検索しようとすると委任の警告が出てしまうため、このように実装しています。
まとめ
このページでは、Power Appsで部分一致のテキスト検索を実装する方法を説明しました。
AddColumn関数を経由するため少しイメージしづらいかもしれませんが、この記事の説明で使いこなせるようになってもらえるとうれしいです。
Power Appsを学びたい方は、下記のおすすめ学習方法もご覧ください。
匿名で投稿できる目安箱アプリについて知りたい方は、下記もご覧ください。
Teamsを利用して組織内のコミュニケーションを強化したい方は下記もご覧ください。
・【事例付き】Teamsを活用したマネジメントTIPS集
・【マネージャー向け】Teamsアプリを活用した「誰が何を知っているか」の集約・共有 事例集
・【Teamsアプリ活用事例集】メンター制度を置き換えて新人・異動者の育成を効率化する方法
・【問い合わせ管理でお困りの方向け】問い合わせ対応・ナレッジ蓄積へのTeams活用事例集
・【マネジメント・業務把握にお困りの方向け】マネジメント・報告業務へのTeams活用事例集
・【Teamsアプリを活用事例集】週報を自動で収集しサマリー&フィードバックする方法とは