レコードの中から、指定のキーに一致する値のものをグループにまとめて別のレコードに変換します。
この「やること」は複雑な動作をしますので、具体例で説明します。
上図のように、変換前のアプリではチームの成績が四半期毎に1レコードで表されているとします。変換後のアプリでは成績は1年ごとにまとめられ、各四半期ごとにフィールドが分けられています。この例では四半期毎の「行」をQ1~Q4の「列」に変換します。
まず変換元のレコードを事前に取得しておき、それを「変換元レコード」パラメーターに設定します。「キーとなるフィールド」は「チーム」と「年」を選択します。
重要なのは変換マッピングで、これはif関数を駆使して以下のように設定します。
セットする値 | セット先フィールド |
---|---|
= チーム | チーム |
= 年 | 年 |
= if(四半期=1, 獲得ポイント) | Q1 |
= if(四半期=2, 獲得ポイント) | Q2 |
= if(四半期=3, 獲得ポイント) | Q3 |
= if(四半期=4, 獲得ポイント) | Q4 |
このマッピングにより、四半期の値が1の場合は獲得ポイントが変換後の Q1 フィールドにマッピングされ、四半期の値が2ならば Q2 にマッピングされ…というようになります。Q1~Q4だけでなく、チーム、年のマッピングも必要です。
この例では、まず変換元でチームと年の組み合わせが同じレコードを1つのグループにまとめ、それを変換先の1レコードにマッピングします。この例では「Osaka,2021」「Osaka,2022」「New York,2021」「New York,2022」という4つのグループができるので、変換先は4レコードになります。
グループ内のレコードはまとめて変換先にマッピングされるのではなく、1行ずつマッピングされます。従って、max や sum のような集計関数は使用できません。マッピング時に「セットする値」が空でない場合はフィールド値を上書きします。従って上記の例で、if(四半期=1, 獲得ポイント, 0)のようにしてはいけません。こうすると、四半期が1でない場合に値ゼロが上書きされてしまいます。
アクションの実行結果は変換後のレコードになります。このレコードはまだどこにも保存されていないことに注意してください。自動的に保存されることもありません。変換後のレコードを保存するには「レコードをもとにレコードを追加する」等につないでください。
「変換元レコード」「キーとなるフィールド」「変換先アプリ」「変換マッピング」を設定します。
変換元レコードを取得したアクションを選択します。
「やること」の性質上、複数のレコードを含んでいなければ意味がありません。「レコード1行が準備できた時」でつないだ後だとレコードが1行になってしまい、変換の効果がなくなってしまいますので注意してください。
変換元レコードでキーとなるフィールドを選択します。複数選択可能です。
選択可能なフィールドタイプは以下です。
テーブル内のフィールドは選択できません。
変換先のアプリを指定します。
このアプリにレコードが保存されるわけではありませんが、変換先のフィールド一覧を決めるために必要です。
変換マッピングを入力します。
条件 | 発生有無 |
---|---|
「レコード1行が準備できた時」 | 発生します |
「レコード全行が準備できた時」 | 発生します |
「レコード1行が準備できた時」は変換先レコード1行につき1回発生します。
変換元レコードが1行もなかった場合はどちらも発生しません。