Job Runner

レコード行を列に変換する

概要

レコードの中から、指定のキーに一致する値のものをグループにまとめて別のレコードに変換します。

使い方

この「やること」は複雑な動作をしますので、具体例で説明します。

変換例

上図のように、変換前のアプリではチームの成績が四半期毎に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行ずつマッピングされます。従って、maxsum のような集計関数は使用できません。マッピング時に「セットする値」が空でない場合はフィールド値を上書きします。従って上記の例で、if(四半期=1, 獲得ポイント, 0)のようにしてはいけません。こうすると、四半期が1でない場合に値ゼロが上書きされてしまいます。

アクションの実行結果は変換後のレコードになります。このレコードはまだどこにも保存されていないことに注意してください。自動的に保存されることもありません。変換後のレコードを保存するには「レコードをもとにレコードを追加する」等につないでください。

設定するパラメーター

「変換元レコード」「キーとなるフィールド」「変換先アプリ」「変換マッピング」を設定します。

変換元レコード

変換元レコードを取得したアクションを選択します。

「やること」の性質上、複数のレコードを含んでいなければ意味がありません。「レコード1行が準備できた時」でつないだ後だとレコードが1行になってしまい、変換の効果がなくなってしまいますので注意してください。

キーとなるフィールド

変換元レコードでキーとなるフィールドを選択します。複数選択可能です。

選択可能なフィールドタイプは以下です。

  • 文字列(1行)
  • 数値
  • 計算
  • ラジオボタン
  • ドロップダウン
  • リンク
  • 日付
  • 時刻
  • 日時
  • ルックアップ(文字列)
  • ルックアップ(数値)

テーブル内のフィールドは選択できません。

変換先アプリ

変換先のアプリを指定します。

このアプリにレコードが保存されるわけではありませんが、変換先のフィールド一覧を決めるために必要です。

変換マッピング

変換マッピングを入力します。

レコード取得条件の発生有無

条件 発生有無
レコード1行が準備できた時 発生します
レコード全行が準備できた時 発生します

「レコード1行が準備できた時」は変換先レコード1行につき1回発生します。

変換元レコードが1行もなかった場合はどちらも発生しません。