便利な列追加方法について追記していきます。
関数 | 説明 |
---|---|
Table.FromRows(list, columnName) | 二次元リストからテーブル作成 |
Table.AddColumn(table, newColumnName as text, columnGenerator as function) | 列の追加 |
Table.Join(table1, key1, table2, key2, optional joinKind as nullable number, optional joinAlgorithm as nullable number, optional keyEqualityComparers as nullable list) | テーブルの横結合 |
テーブルの結合
テーブル1の作成
= Table.FromRows(
{{"Bob", 25},
{"Tom", 32}},
{"name", "age"})
テーブル2の作成
= Table.FromRows(
{{"Bob", "apple"},
{"Tom", "arange"}},
{"name", "favorite"})
テーブルの結合
= Table.Join(ソース, "name", カスタム1, "name")
ソースとカスタム1が先に作ったテーブル名でそれぞれのキーを偶数の引数で指定。
joinのさせ方はいろいろあるので下記を参考に指定可能
https://docs.microsoft.com/ja-jp/powerquery-m/table-join
以降このテーブル(カスタム2)に列を追加する方法を紹介
列の追加
四則演算
数値の四則演算
= Table.AddColumn(カスタム2, "year", each [age] + 1967)
置換
数値の四則演算
= Table.AddColumn(カスタム2, "year", each Text.Replace([name], "Bob", "bob"))
条件式
if文の条件式
= Table.AddColumn(カスタム2, "year", each if [age] < 30 then "30歳未満" else "30歳以上")
リストと一致するかの確認
リストに一致したらtrueを返す
= Table.AddColumn(カスタム2, "year", each if List.Contains({"Bob", "Tom"}, [name]) then true else false)
最後に項目のデータタイプを指定することも可能
リストに一致したらtrueを返す
= Table.AddColumn(カスタム2, "year", each if List.Contains({"Bob", "Tom"}, [name]) then 1 else 0, type number)
指定したい型は、Power Queryで一度変換して作られる関数を見るのが良いです。
日付から年月を作成
= Table.AddColumn(スタム2, "年月", each Date.ToText([日付], "yyyy/MM"))
型変換 + Error対応
= Table.ReplaceErrorValues(Table.TransformColumnTypes(テーブル, {{"column1", type number}, {"column2", type number}}), {{"column1", null}, {"column2", null}})