Help us understand the problem. What is going on with this article?

#PowerAutomate で配列に連番を付与する

今回も文字列の半角⇔全角カナ変換を実現するためのテクニックの紹介です。
Power Automate上で配列に連番 (0,1,2...とかID1,ID2,ID3とか)を付与する方法を紹介します。

前回:Power Automateで文字列を1文字ずつに分割する方法

準備:配列を用意

まずは変数の初期化アクションで配列を準備します。

input.json
[
    {
        "Name": "Yamada",
        "Age": 18
    },
    {
        "Name": "Sato",
        "Age": 21
    },
    {
        "Name": "Tanaka",
        "Age": 32
    }
]

このような簡単な配列です。これに連番を付与することで、

out.json
[
    {
        "rowNum": 1,
        "Name": "Yamada",
        "Age": 18
    },
    {
        "rowNum": 2,
        "Name": "Sato",
        "Age": 21
    },
    {
        "rowNum": 3,
        "Name": "Tanaka",
        "Age": 32
    }
]

こんな風に番号を振っていきます。 Flowのアクションには上のinput.jsonをコピペすればOKです。

image.png

連番付与

今回も選択(Select)のアクションを利用します。
入力になる配列は、
range(0,length(variables('Arr'))
で指定しています。これは前回も紹介しましたが、0から始まって、Arrという配列の長さ(行数)だけ整数列を作ります。
image.png

あとはMapのところに、rowNumとして add(item(),1) を追加、その他の変更しない列については、Nameなら
variables('Arr')?[item()]?['Name'] のように指定しています。

数式の解説

ここで使った variables('Arr')?[item()]?['Name'] ですが、以下のような意味合いです。
image.png

これをMapに書くことで、元の配列の要素・値を出力される配列に加えることができます。

実行結果

Flowを実行すると以下のように目的の連番付きの配列が生成されます。
ここでは連番を簡単に1,2,3...としましたが、接頭語などを付けたい場合には

1,2,3.. ->  add(item(),1)
ID1,ID2,ID3 --> concat('ID',add(item(),1))

こんな風に、concatを使うと実現できます。
image.png

まとめ

連番の付与にも選択(Select)のアクションが有効です。
ポイントは、
- 選択アクションの入力配列として、[0,1,2,..,配列の長さ]を設定すること
- 連番にはitem()を利用する
- 配列のitem()番目を取得すると元の配列の順序を崩さずに新配列を定義できる

次回はいよいよカタカナの全角半角変換にトライします。

h-nagao
PowerApps中毒者です。 毎日PowerAppsのこと考えています。 嘘です。今はPowerAutomateに浮気してます #MoreBeerMorePower
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした