【Power Apps】コレクションに列を追加(コレクションの結合)

既存のコレクションにキーで紐づけたデータを追加したい場合にだいぶ手こずったため、こちらにまとめます。

別のコレクションに一列追加する場合

今回は下記2つのコレクションを一から作成し、IDをキーに2つのコレクションを結合し、1つの新しいコレクションを作成します。

※実際はコレクションを一から書くことはなく、データソースから読み取ることが多いと思いますが、練習のため一から作成しています。

Apps
ClearCollect(Arashi_Name,
{ID: "0001", Name: "Ohno Satoshi"},
{ID: "0002", Name: "Sakurai Sho"},
{ID: "0003", Name: "Aiba Masaki"},
{ID: "0004", Name: "Ninomiya Kazunari"},
{ID: "0005", Name: "Matsumoto Jun"}
);

ClearCollect(Arashi_Color,
{ID: "0001", Color: Blue},
{ID: "0002", Color: Red},
{ID: "0003", Color: Green},
{ID: "0004", Color: Yellow},
{ID: "0005", Color: Purple}
);
Apps
//Arashi_NameコレクションにColor列を追加します
//既存のコレクションには追加できないため、新たなコレクションを作成します
ClearCollect(Arashi,
   AddColumns(Arashi_Name,"Color",LookUp(Arashi_Color,ID=Arashi_Name[@ID],Color)))

別のコレクションにすべての列を追加する場合

先ほどと同じようにに下記の2つのコレクションを使用します。

Apps
ClearCollect(Arashi_Name,
{ID:"0001",Name:"Ohno Satoshi"},
{ID:"0002",Name:"Sakurai Sho"},
{ID:"0003",Name:"Aiba Masaki"},
{ID:"0004",Name:"Ninomiya Kazunari"},
{ID:"0005",Name:"Matsumoto Jun"}
);

ClearCollect(Arashi3,
{ID:"0001",Color:"Blue",Birthplace:"Tokyo",BloodType:"A"},
{ID:"0002",Color:"Red",Birthplace:"Tokyo",BloodType:"A"},{ID:"0003",Color:"Green",Birthplace:"Chiba",BloodType:"AB"},{ID:"0004",Color:"Yellow",Birthplace:"Tokyo",BloodType:"A"},{ID:"0005",Color:"Purple",Birthplace:"Tokyo",BloodType:"A"}
);

Arashi_NameコレクションにArashi3コレクションの全列を追加する新しいコレクションを作成します。

Apps
ClearCollect(
    Arashi,
    Ungroup(
        DropColumns(
            AddColumns(
                Arashi3,
                "myGroupedColumn",
                Filter(
                    Arashi_Name,
                    ID = Arashi3[@ID]
                )
            ),
            "ID"
        ),
        "myGroupedColumn"
    )
);

入れ子になっているので、ばらして説明します。

まず中のAddColumns関数ですが、コレクションに1列追加しています。今回はArashi3コレクションのすべてのデータを1列として扱っています。

DropColumns関数を利用しているのは、キーになっているID列が重複するため、ID列を削除しています。

Ungroupで1列で放り込んだデータをばらしています。

注意
Ungroupする時に先ほど削除したID列が残っている場合、列名が重複するためエラーが発生し、Ungroupできなくなります。

SharePointリストのデータを使用する場合の注意点

SharePointリストのデータを全部使用し、すべてのデータを別のSharePointリストのデータに追加しようとすると同じ列名があるため結合できないとエラーが発生します。これはなぜかというと、SharePointリストには非表示になっている既存の列が存在するためです。

そのため、SharePointリストのデータとSharePointリストのデータを結合する場合はすべての列を結合をするは使用できないため、必要な列のみそれぞれ追加する方がベストです。

Apps
ClearCollect(Arashi,       AddColumns(Arashi3,"Color",LookUp(Arashi3,ID=Arashi_Name[@ID],Color,"BloodType",LookUp(Arashi3,ID=Arashi_Name[@ID],BloodType)))

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA