Power Apps & SharePointでの複数条件の検索方法 (Filter 関数)

Поделиться
HTML-код
  • Опубликовано: 23 янв 2025

Комментарии • 41

  • @あずきもなか-y9e
    @あずきもなか-y9e 2 месяца назад

    すみません、現在ドキュメントライブラリにPDFを格納し、検索するサイトを作成しているのですが、とても参考になると思い拝見しておりました。
    初心者でこちらが話が通じず申し訳ないのですが、委任のpower appsの画面にきたところで、このpower appsの構成がわからず悩んでいるのですが、この画面を作成するところを詳しく教えていただけないでしょうか?

  • @ncp61ist314
    @ncp61ist314 Год назад +1

    PowerAppsを業務に使用したくフジワラさんの動画を参考にアプリを作らせて頂いておる初心者です。
    そこで、sharepointリスト上でレコード数が2000は超える想定から今回の動画を観てfilter関数を使用してみましたが、委任の警告が出てしましました。
    現時点ではレコード数が100ほどしかないことから(作成環境)とりあえず動いてはいるのですが、本稼働後に検索で上がってこないことは避けたく思っております。
    下記の関数になるのですが、解決方法についてご教示いただけないでしょうか。
    Filter(業務受付リスト,
    StartsWith(ID,検索_受付ID.Text)
    )
    この「ID」というのはsharepointリストじょうで自動採番される数値型の値であり、「検索_受付ID」というテキストボックスも数値型として設定しておりますので".text"と入れるのも違和感を感じております。
    お手数をおかけいたしますが、どうかよろしくお願いいたします。

    • @geekfujiwara
      @geekfujiwara  Год назад +1

      参考にしていただきましてありがとうございます。
      ご想定の通りで、テキストインプットコントロール にて入力させているため、テキスト型とリスト上の数値型を比較している状況です。
      見た目同じ値でもデータ型が違っており、うまく動かないという現象です。
      例えば以下のように関数を変えてみてください。Valueはテキスト型を数値型に変換する関数です。
      Filter(業務受付リスト,
      StartsWith(ID,
      Value(検索_受付ID.Text)
      )
      )
      Microsoft のドキュメントはこちらにあります。
      learn.microsoft.com/ja-jp/power-platform/power-fx/reference/function-value

  • @apexman9528
    @apexman9528 2 года назад +1

    はじめまして。
    貴重な動画ありがとうございます。
    テキスト検索で、部分一致検索をしたいです。
    京を検索すれば、東京都も京都も出てくるようにしたいです。
    お忙しいとは思いますが、ぜひとも方法ご教授頂けないでしょうか😭

    • @geekfujiwara
      @geekfujiwara  2 года назад +1

      SharePoint リストをデータソースとした場合、部分一致を実現するSearch 関数の委任に対応しておりませんので残念ながら出来ません。したがって、最大2,000件のレコード数という取得上限数がありますが一度SharePoint リストのデータをClearCollectしてローカルにキャッシュしてそのコレクションに対してSearch 関数をかけることで部分一致が可能です。またMicrosoft 365ライセンスの範囲内でご利用いただけるDataverse for Teams をデータソースとしてご利用いただければ直接データソースへのSearch関数の委任が可能です。

    • @apexman9528
      @apexman9528 2 года назад

      @@geekfujiwara そうなんですね、ご丁寧に本当ありがとうございます!!

    • @apexman9528
      @apexman9528 2 года назад +1

      何度もすみません。
      ドロップダウンで全てを選択した場合、すべてのデータを表示させたいのですが、どのようにしたらよいでしょうか。

    • @geekfujiwara
      @geekfujiwara  2 года назад

      Itemプロパティに
      If(ドロップダウン名.Selected.Value = “全て” , データソース名,
      Filter(データソース名, 条件))
      こんな感じですね!

    • @apexman9528
      @apexman9528 2 года назад +1

      @@geekfujiwara
      さっそくありがとうございます。
      本当に助かります😭😭
      ドロップダウンが2個ある場合の構文はどうなるのでしょうか。
      本当何度も申し訳ないです。

  • @kanako8674
    @kanako8674 Год назад +1

    IsBlank関数と||で、Dropdownが未選択だった時に全件表示することができるのは分かったのですが、IsBlankがtrueだとなぜ全件表示させることができるのか、理屈がピンときません。
    Filter関数の条件の部分がtrueだと、条件が無い、という意味になるのでしょうか。

    • @geekfujiwara
      @geekfujiwara  Год назад

      そもそも Filter に書かれている条件と言うのは、trueの時のデータセットを返します。ドロップダウン未選択=Blank と言うことはIsBlankを評価したとき、データソースに関係なく常にtrue なので、全件表示となります。

    • @kanako8674
      @kanako8674 Год назад +1

      @@geekfujiwara お返事ありがとうございます。全レコードtrueで評価されて、全レコードが返ってきているイメージでしょうか。

    • @geekfujiwara
      @geekfujiwara  Год назад

      いえ、データソース関係なくドロップダウンに値があるかないかを判断して、常にtrueとなっている感じです。全レコード評価してません!

    • @kanako8674
      @kanako8674 Год назад +1

      @@geekfujiwara 常にtrueというのは、常に何がtrueなんでしょうか?ソースが、でしょうか?ソースがtrue=全部見えている状態でしょうか。
      しつこくてすみません。

    • @geekfujiwara
      @geekfujiwara  Год назад

      ドロップダウンの中身の評価ですー。
      何も選択してないので常にIsBlankはtrueですよね??

  • @sssss.joseph
    @sssss.joseph 2 года назад +1

    いつも貴重な動画をありがとうございます。
    フィルターで表示されたレコードの値を集計する場合sumを使うと計算はしてくれますが委任エラー表示になります。
    こういった場合はコレクションを使うのがいいですか?
    ご教示いただければありがたいです。

    • @geekfujiwara
      @geekfujiwara  2 года назад

      いつもご視聴ありがとうございます!
      はい、データソースがSharePointなどであるときはSum 等の集計関数は委任できませんので一度Collectionに必要なレコードをとってくることになるかと思います。
      ちなみにDataverseであれば50,000件までは集計関数を委任できます。
      Office 365付帯のDataverse for Teamsもありますのでご検討ください!

    • @sssss.joseph
      @sssss.joseph 2 года назад +1

      @@geekfujiwara さん
      ご丁寧にご解答いただきありがとうございます。大変参考になりました!
      やはりDATAVERSEを検討してみます!
      これからも動画楽しみにしてます🥰
      ありがとうございます🙇🏻

  • @yamadahi8304
    @yamadahi8304 Год назад

    コメント失礼いたします。
    とても参考になりました。
    自分のアプリ上で試してみたのですが、二つドロップボックスがあって条件フィルターを設置しています。
    両方選ばないとフィルターがかからないのですが、何が原因だと考えられますでしょうか。説明不足あるかもしれませんが、何卒宜しくお願いします。

    • @geekfujiwara
      @geekfujiwara  Год назад

      IsBlank()を条件に入れていないからですかね。

  • @市塚茂雄
    @市塚茂雄 Год назад

    参考になる動画ありがとうございます。同じことをしたくて構文参考にさせていただくとStartsWith構文まではギャラリー検索可能なのですが、IsBlank構文を追加するとギャラリーが非表示になり”名前が無効ですThisItemは認識されません”となってしまうのですがどうしてかご教示いただければありがたいです。

    • @geekfujiwara
      @geekfujiwara  Год назад

      ご感想もありがとうございます。
      ThisItemというエラーメッセージが出るということは、ギャラリーコントロール全体ではなく、レコード単位に設定している可能性があります。以下ご確認ください。
      ・ギャラリーのItems プロパティに関数を設定しているか(ギャラリー内のレコードへの関数うの設定ではなく、Iteams(データソース)に設定を行う必要がある)

  • @kosa5650
    @kosa5650 2 года назад +1

    初めまして。
    いつもRUclipsを参考に業務の効率化をさせていただいております。
    もしご存じであれば教えて頂きたいのですが、現在PowerAppsのキャンバスアプリにて、Share Pointのリストにデータを入力するツールを作成しているのですが、委任問題を避けるために「Share Pointのリストデータが1900件になれば、自動的に別のShare Pointのリストを作成し、退避する」などの対応は可能なのでしょうか?
    不躾なご質問で恐れ入ります。

    • @geekfujiwara
      @geekfujiwara  2 года назад

      可能です。「SharePoint リストを作成する」というPower Automate は標準コネクタでは用意されておりませんが、SharePoint リストは特別にHTTPリクエストを送ることができるコネクタが用意されておりますので、SharePoint リストを作成するGraph API を実行するようにすればよいかと思います。リスト数は定期的にスケジュールフロー等でカウントすることでトリガーしてはいかがでしょうか。
      Graph APIは以下の通りの仕様です。
      learn.microsoft.com/ja-jp/graph/api/list-create?view=graph-rest-1.0&tabs=http
      SharePoint のHTTPリクエストのコネクタは以下のようにご利用いただけます。
      learn.microsoft.com/ja-jp/sharepoint/dev/business-apps/power-automate/guidance/working-with-send-sp-http-request
      データの新リストへのコピーと既存リストからの削除はPower Automate の標準アクションにて実行できるかと思います。ただ、イメージ列に関しては標準アクションでサポートされていないためご注意ください。
      コピーは、複数の項目の取得を行い、項目の作成をApply to each させる(標準で取得上限が100件のため、適宜見直してください)
      一方、Microsoft 365のライセンスの範囲でも利用できるDataverse for Teams というデータベースサービスも利用できますのでこちらもご検討いただければ委任の問題はほぼ気にしなくてよくなるのではないかなと思います。こちらも合わせてご検討ください。
      learn.microsoft.com/ja-jp/power-platform/admin/about-teams-environment

  • @氏あがり
    @氏あがり Год назад +1

    初心者すぎて説明がとても下手なのですが、イコールを打った際、型に互換性がないため比較できません。textとnumberの型は比較できません。と出てきます。

    • @geekfujiwara
      @geekfujiwara  Год назад

      元々のSharePoint の列のデータ形式を合わせるようにするか、Power Apps 側でSharePoint リストに渡すデータ形式をValue 関数かText 関数で変換してみてください!

    • @氏あがり
      @氏あがり Год назад +1

      @@geekfujiwara先ほどの質問とは異なるのですが、
      選択肢型で1~5、赤と青と緑などの2つドロップボックスで絞り込みたい場合はどのように関数を作れば良いでしょうか?またドロップボックスの方の関数も教えていただけると嬉しいです。このようなことがわかる動画があればURL欲しいです。

    • @geekfujiwara
      @geekfujiwara  Год назад

      選択肢用のコレクションですが以下のようにドロップダウンのItems に設定してみてください。動画の 4:28 付近に説明があります。
      数字の場合
      [1, 2, 3, 4, 5]
      文字列の場合
      [“青”, “緑”, “赤”]

    • @氏あがり
      @氏あがり Год назад +1

      @@geekfujiwara 何度も申し訳ないです。シェアポイント側での設定等はあるでしょうか?シェアポイント側のリストは選択肢に で作成で大丈夫ですよね?

    • @geekfujiwara
      @geekfujiwara  Год назад

      SharePoint リスト側は選択肢型で作成でOKですよ!
      その場合、Power Apps 側ではテキスト形式として認識するため、選択肢内のデータが数字であっても、テキスト形式として選択肢を作成するようにしてください。
      たとえばこんな感じです。
      [“1”, “2”, “3”]
      他にもSharePoint の選択肢列をドロップダウンに設定する方法もありますが、まずはこの基本的なやり方を試してみてください。