PowerApps|テーブル型の要素に順番に番号をつける方法
PowerAppsのテーブル型のデータに対して、
1つ前の要素は?1つ後の要素を知りたいと思ったことはありませんか?
そんな時の解決策が
要素1つ1つに対して、順番に番号をつける方法です。
PowerAppsでは少し複雑な処理を書くことになりますので、
この記事では、コードとその中身の解説を行います。
応用を効かせることもできるので、ぜひ活用してみてくださいね!
目次(クリックで読みたい部分にジャンプできます)
【結論】コレクションにForAllとPatchを適用する
では、早速解決方法についてです。
まず、テーブル型のデータがある場合に、それに対し列番号を振るとします。
扱うデータ
今回、扱うサンプルデータは以下のようなものを想定しています。
JSON形式でかくと以下のようなデータです。
[
{
"名前": "山田太郎",
"部署": "営業部",
"入社年月": "2019年4月",
"給与": "300,000円"
},
{
"名前": "佐藤花子",
"部署": "経理部",
"入社年月": "2020年7月",
"給与": "280,000円"
},
{
"名前": "田中一郎",
"部署": "開発部",
"入社年月": "2018年9月",
"給与": "320,000円"
},
{
"名前": "鈴木愛理",
"部署": "人事部",
"入社年月": "2021年1月",
"給与": "270,000円"
},
{
"名前": "伊藤弘",
"部署": "マーケティング部",
"入社年月": "2017年12月",
"給与": "310,000円"
}
]
このようなデータはFilter関数などで、引っ張ってくることができます。
今回は、このサンプルデータに対して列番号をつけていきます。
では、コードを紹介します。
//TempCollectionの中に、先ほどのデータが格納されている想定。
ClearCollect(
NumberedCollection,
With({_items: TempCollection},
ForAll(Sequence(CountRows(_items)),
Patch(Last(FirstN(_items, Value)),
{RowNumber:Value}
)
)
)
);
これにより、NumberdCollectionには、以下のようなデータが格納されます。
コピペの場合
コピペする場合には、以下の部分に注意すれば使用可能です。
- TemCollectionに該当のデータ(テーブル形式)を格納する
- RowNumberの名前は可変。
では、ここからコードの内容について紹介していきます。
「コピペだけでいいよ!」って方はここからは不要です。
ただ、このコードはとても応用が効けるので、さらにPowerAppsを極めたい方は、参考にしてみてください。
コードの解説
1つ1つ分解して紹介します。
ClearCollectでコレクションを新規宣言。データを_itemsに格納
まず、以下のコードについてです。
ClearCollect(
NumberedCollection,
With({_items: TempCollection},
~~
)
);
ClearCollectは、コレクションの新規宣言です。
コレクションも変数と同じように扱うことができ、テーブル型のデータを格納できます。
次に、With関数で、データを_itemsに格納しています。
With関数は、一時的にデータを格納できる中間変数です。
LookUpを複数使いたい時や、関数を重ねるとエラーが出る時などに、重宝します。
ForAll関数と、Patch関数の使用
次に以下部分についてです。
ForAll(Sequence(CountRows(_items)),
Patch(Last(FirstN(_items, Value)),
{RowNumber:Value}
)
)
ForAll関数を使用して、指定回数関数内の処理を繰り返します。
ForAll関数とは
ForAll関数とは、()内の処理を指定回数繰り返す関数のことです。
指定回数とは、Sequence関数で指定することができます。
Sequence(2) →2回繰り返す
今回は、_itemsのデータの列分繰り返します。
使用するデータから見ると、5回繰り返すことになりますね。
次に、Patch関数を使用して、データを追加します。
Patch関数は、指定したデータに対してデータを追加できる関数です。
今回指定しているデータは、以下です。
Last(FirstN(_items, Value)
Valueは、ForAll関数内で使える変数で、今何回目かを表しています。
FirstN関数は、データの指定した列順までを抽出します。
Last関数は、その最後の列を抽出します。
Valueに数字を当てはめていくとわかりやすくなります。
Value=2(2回目)である場合は、
_itemsの最初から2列目までを全て取得します。
その後、Last関数で最後の要素を取得するので、2番目の要素が抽出できるわけです。
これにより、要素に対して、順番にRowNumberを付加することができます。
Last(FirstN( はIndex関数で代用可能
Last(FirstN( によって、何番目にあるかの値を導き出していたわけですが、
この部分は、Index関数を用いて代用することも可能です。
例えば、以下のように書いている部分においては
Last(FirstN(_items, Value))
Index(_items, Value)
このように書き換えることも可能です。
Index関数の公式サイト
First、FirstN、Index、Last、LastN 関数 - Power Platform | Microsoft Learn
PowerAppsを学ぶにはUdemyがおすすめ
この記事では
「テーブル型の要素に順番に番号をつける方法」を詳しく解説しました。
この知識も私がUdemyで学んだことから得られたものです。
実は、Udemyでは本には載っていない専門的な分野や最新の技術トレンドに関する豊富なコースが用意されています。
これらのコースを通じて、私は多くの実践的なスキルを身につけることができました。
あなたもUdemyで新しい技術を学び、キャリアや趣味に生かしてみませんか?
興味のあるコースを探して、今すぐ学び始めることができます。
下記のリンクからアクセスして、あなたに合ったコースを見つけてください。
PowerAppsのさらに深い理解と実践的なスキルを身につけるために、Udemyのコースを活用することをお勧めします。
まとめ
今回は、テーブル型のデータに対して、列番号を振る方法について紹介しました。
PowerAppsでは少々複雑に書かないといけませんが、このコードを応用すると、要素に対して順番に処理を行うことが可能になります。
つまり、番号だけでなくそれ以外の要素の追加などを順番に行っていけるようになります。
ぜひ活用してみてください。