今回も文字列の半角⇔全角カナ変換を実現するためのテクニックの紹介です。
Power Automate上で配列に連番 (0,1,2...とかID1,ID2,ID3とか)を付与する方法を紹介します。
2022/01/07:式の一部でカッコが足りなかったので修正しました
前回:Power Automateで文字列を1文字ずつに分割する方法
準備:配列を用意
まずは変数の初期化アクションで配列を準備します。
[
{
"Name": "Yamada",
"Age": 18
},
{
"Name": "Sato",
"Age": 21
},
{
"Name": "Tanaka",
"Age": 32
}
]
このような簡単な配列です。これに連番を付与することで、
[
{
"rowNum": 1,
"Name": "Yamada",
"Age": 18
},
{
"rowNum": 2,
"Name": "Sato",
"Age": 21
},
{
"rowNum": 3,
"Name": "Tanaka",
"Age": 32
}
]
こんな風に番号を振っていきます。 Flowのアクションには上のinput.jsonをコピペすればOKです。
連番付与
今回も選択(Select)のアクションを利用します。
入力になる配列は、
range(0,length(variables('Arr')))
で指定しています。これは前回も紹介しましたが、0から始まって、Arrという配列の長さ(行数)だけ整数列を作ります。
あとはMapのところに、rowNumとして add(item(),1)
を追加、その他の変更しない列については、Nameなら
variables('Arr')?[item()]?['Name']
のように指定しています。
数式の解説
ここで使った variables('Arr')?[item()]?['Name']
ですが、以下のような意味合いです。
これをMapに書くことで、元の配列の要素・値を出力される配列に加えることができます。
実行結果
Flowを実行すると以下のように目的の連番付きの配列が生成されます。
ここでは連番を簡単に1,2,3...としましたが、接頭語などを付けたい場合には
1,2,3.. -> add(item(),1)
ID1,ID2,ID3 --> concat('ID',add(item(),1))
#まとめ
連番の付与にも選択(Select)のアクションが有効です。
ポイントは、
- 選択アクションの入力配列として、[0,1,2,..,配列の長さ]を設定すること
- 連番にはitem()を利用する
- 配列のitem()番目を取得すると元の配列の順序を崩さずに新配列を定義できる
次回はいよいよカタカナの全角半角変換にトライします。