Power Appsでよく使う[]
の仕様がいつの間にか変更されていて、使いやすくなっていたのでご紹介します。
[]
で囲ったときに暗黙的に作成されるValue列
Power Appsの数式で要素を並べて[]
で囲うと、
ClearCollect(SingleColumnTable, ["東京", "神奈川", "埼玉", "千葉"])
暗黙的に「Value」という名前が付与された1列だけのテーブルが作成されます。

上の例のようにレコード型でないスカラー型(テキスト型やブール型などの単一のデータを表す型)であれば問題なく機能します。
過去の仕様では、レコードを与えても全部Valueの入れ子にされていた
しかし、以下のようにレコード型を与えても、すべてValue列の1セルに押し込められてしまっていました。
ClearCollect(
BasicTableWithSquareBrackets,
[
{id: 1, Value: "テスト1"},
{id: 2, Value: "テスト2"}
]
)

Table
関数であれば列の構造が異なっていてもすべての列を用意し、同じ列名であれば同じ列に格納、その行に存在しない列は空白(Blank)にするという処理ができます。
そのため、複数列テーブルの作成にはTable
関数の使用が推奨されていました。
いつの間にか[]
でも複数列テーブルが作れるようになっていた👍️
いつ変更になったのかはわかりませんが、2025年5月現在なら[]
にレコード型を渡しても、Value列に強制ネストされないテーブルが生成される仕様に変わっています。
ClearCollect(
BasicTableWithSquareBrackets,
[
{id: 1, Value: "テスト1"},
{id: 2, Value: "テスト2"}
]
)

異なる列を持っているレコードを渡しても大丈夫です。
ClearCollect(
DifferentColumnWithSquareBrackets,
[
{ id: 1, Name: "A男" },
{ id: 2, Name: "B郎", Birthday: Date(1980, 4, 1) },
{ id: 3, Name: "C子", BloodType: "A" }
]
)

今でもTable関数が必要な場面
ではTable
関数が全く不要になってしまったのかというと、そうではありません。
現在でもTable
関数にしかできないことがあります。
複数のテーブルを結合する
以下のように複数のテーブルを結合するのは、2025年5月時点でもTable
関数でないとできません。
With(
{
t1: [
{ id: 1, name: "あ" },
{ id: 2, name: "いい" }
],
t2: [
{ id: 3, name: "ううう" },
{ id: 4, name: "ええええ" }
]
},
ClearCollect(MergeTableFunction, Table(t1, t2))
)

[]
にすると、各テーブルがValue列にネストされてしまって結合できません。
With(
{
t1: [
{ id: 1, name: "あ" },
{ id: 2, name: "いい" }
],
t2: [
{ id: 3, name: "ううう" },
{ id: 4, name: "ええええ" }
]
},
ClearCollect(MergeTableSquareBrackets, [t1, t2]) // 変わったのはここだけ
)

Table
関数ならテーブルとレコードを混ぜても機能しますが、
ClearCollect(
MergeSingleColumnTableFunction,
Table(
{ Value: "XS" },
[ "S", "M", "L" ],
{ Value: "XL" }
)
)

[]
の場合、レコードを先に置くとエラーになりますし、
ClearCollect(
MergeSingleColumnTableSquareBrakcets,
Table(
{ Value: "XS" },
[ "S", "M", "L" ],
{ Value: "XL" }
)
)

テーブルを先に置くとエラーにはなりませんが、新しく生成されたテーブルの各行が空っぽになります。
ClearCollect(
MergeSingleColumnTableSquareBrakcets,
[
["S", "M", "L"],
{ Value: "XS" },
{ Value: "XL" }
]
)

テーブルの結合は、今後もTable
関数を使いましょう。
まとめ:より直感的になった改良ポイントだと思います!
地味な変更点ですし、劇的に便利になったわけでもないのですが、こういう理不尽ポイントを減らしてくれるのは非常に良い変更だと思います。
また新たな発見があれば記事にしたいと思います。
コメント