はじめに
Power Automate でループなしでソートする方法を纏めました。
しかし、この方法では日付のソートはできません。
range 関数の制限に引っかかってしまうからです。
そこで、この記事では日付フィールドを昇順 / 降順で取得する方法を記載しておこうと思います。
ただし、SPO リストから取得する際限定になります。
SPOリストから項目を取得する
取得したデータをソートするというのは難しいことが分かったので、データを取得するときにソートした結果を取得するようにしたいと思います。
これを実現するためには"SharePoint にHTTP 要求を送信します"を利用します。
こちらを利用するとSharePoint に対してREST API を送信することができます。
このAPI を利用することで、項目の取得 & フィールドのソートを行いたいと思います。
今回行うのは項目の取得なので"方法"には GET
を利用します。
_api/web/lists/getbytitle('[リスト名]')/items?$select=Title,Modified&$orderby=Modified asc
_api/web/lists/getbytitle('[リスト名]')/items
では[リスト名]のリストから項目を取得しています。
select=Title,Modified
ではTitle とModified フィールドから項目を取得しています。
orderby=Modified asc
では、Modified を昇順で並び変えています。
もし、降順にしたければ orderby=Modified desc
とします。
また、取得する件数を絞りたければ &$top=5
を式の最後に追記します。
この例だと先頭5件を取得する。となります。
先頭5件だけ。とやったうえでModifiedで降順ソートすると、変更日時が5番目に新しいものを last 関数で簡単に取得できますね。
おわりに
このやり方を応用して、取得したデータを一度SPO リストに一時的に格納してそのデータをソートさせて取得する。というやり方をすれば一応時間フィールドのソートもできそうですね。
ループするよりもアクション数自体は少なくなりそうですが、実行時間や一時格納用リスト用意しなくてはならない点を考慮するとちょっと微妙な気もしますが。。。