テーブル同士を比較する(合成・差分抽出)
この記事では、CompareTableアクションで差分を抽出したり、データを併合する方法を紹介します。
【できるようになること】
- CompareTableでの差分抽出
- CompareTableでのデータ併合
- Comparetableでの重複しているデータの抽出
ワークフローの設定例
ワークフローの設定方法は以下の通りです。
差分抽出では、2つのデータを比較して重複してないものだけ抽出できます。
取得してきたデータやスプレッドシートなどのデータから重複してないものを取得するのは、javascriptが必要でしたがこのアクションはコードなしで実行できます。
例:当日取得したデータと昨日取得したデータを比較し、当日分だけ抽出したい時

この場合は、データが多い当日のデータをcomparetableのlefttermに入れ、昨日分のデータをrighttermに入れると差分が取得できます。
詳細はワークフローサンプル1を参照
データ併合では、スプレッドシートやエクセル、CSVデータを足し合わせるのに便利です。
例:下記画像のようにサイトから落としてきたデータで最後の列がある時とない時で分かれる場合

こうした時に下記のような形でデータを併合すると備考がある場合、ない場合のデータどちらも合成したデータが作成できます。
記入方法は、一番左をAとしてA&B&C&D,,,と列分&とアルファベットを追加する形式です。

下記スクリーンショットのようにCSVやスプレッドシートのセルを比較する場合、一度ワークフローを実行するとidentiferの項目をUIで設定できるようになります。
1でデータの差分抽出、データの併合、2でデータの併合を行いましたが、これを使うことで重複しているデータの抽出も可能です。
1のように当日と昨日データを使う場合、差分抽出をし、当日データ-差分をcomparetableで行うと重複しているデータのみ抽出できます。


# 変数に保存 当日取得したデータ
+store_value_4:
action>: StoreValue
key: ex1
value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"],["jacy","29","robotic","xxxx"],["janne","27","roboticcrowd","xxx"]]
# 変数に保存 昨日取得したデータ
+store_value_3:
action>: StoreValue
key: ex2
value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"]]
# テーブルを比較する
+compare_table_2:
action>: CompareTable
leftTerm: ${ex1}
rightTerm: ${ex2}
method: subtract
header: true
# 変数に保存
+store_value_2:
action>: StoreValue
key: bb
value: [["名前","年齢","会社名","年収","備考"],["jack","22","tutorial","xxx","parttime job only"]]
# 変数に保存
+store_value_1:
action>: StoreValue
key: aa
value: [[“名前”,”年齢”,”会社名”,”年収”],[“jane”,”32″,”tutorial”,”xxx”]]
# テーブルを比較する
+compare_table_1:
action>: CompareTable
leftTerm: ${aa}
rightTerm: ${bb}
method: add
identifier: ‘A&B&C&D’
header: true
# 変数に保存 当日取得したデータ
+store_value_4:
action>: StoreValue
key: ex1
value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"],["jacy","29","robotic","xxxx"],["janne","27","roboticcrowd","xxx"]]
# 変数に保存 昨日取得したデータ
+store_value_3:
action>: StoreValue
key: ex2
value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"]]
# テーブルを比較する
+compare_table_3:
action>: CompareTable
leftTerm: ${ex1}
rightTerm: ${ex2}
method: subtract
header: true
# 変数に保存
+store_value_6:
action>: StoreValue
key: subtracted
value: +compare_table_3
# テーブルを比較する
+compare_table_4:
action>: CompareTable
leftTerm: ${ex1}
rightTerm: ${subtracted}
method: subtract
header: true