テーブル同士を比較する(合成・差分抽出)
1130 views
この記事では、CompareTableアクションで差分を抽出したり、データを併合する方法を紹介します。
【できるようになること】
- CompareTableでの差分抽出
- CompareTableでのデータ併合
- Comparetableでの重複しているデータの抽出
ワークフローの設定例
ワークフローの設定方法は以下の通りです。
差分抽出では、2つのデータを比較して重複してないものだけ抽出できます。
取得してきたデータやスプレッドシートなどのデータから重複してないものを取得するのは、javascriptが必要でしたがこのアクションはコードなしで実行できます。
例:当日取得したデータと昨日取得したデータを比較し、当日分だけ抽出したい時
この場合は、データが多い当日のデータをcomparetableのlefttermに入れ、昨日分のデータをrighttermに入れると差分が取得できます。
詳細はワークフローサンプル1を参照
データ併合では、スプレッドシートやエクセル、CSVデータを足し合わせるのに便利です。
例:下記画像のようにサイトから落としてきたデータで最後の列がある時とない時で分かれる場合
こうした時に下記のような形でデータを併合すると備考がある場合、ない場合のデータどちらも合成したデータが作成できます。
なお、この場合、最初の4列は必ず同じデータになるので identiferにA&B&C&Dと記入します。identiferは比較するデータに同じヘッダーがある場合記入します。
記入方法は、一番左をAとしてA&B&C&D,,,と列分&とアルファベットを追加する形式です。
最終的な実行イメージ
詳細はワークフローサンプル2を参照
下記スクリーンショットのようにCSVやスプレッドシートのセルを比較する場合、一度ワークフローを実行するとidentiferの項目をUIで設定できるようになります。
1でデータの差分抽出、データの併合、2でデータの併合を行いましたが、これを使うことで重複しているデータの抽出も可能です。
1のように当日と昨日データを使う場合、差分抽出をし、当日データ-差分をcomparetableで行うと重複しているデータのみ抽出できます。
詳細はワークフローサンプル3を参照
# 変数に保存 当日取得したデータ +store_value_4: action>: StoreValue key: ex1 value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"],["jacy","29","robotic","xxxx"],["janne","27","roboticcrowd","xxx"]] private: false # 変数に保存 昨日取得したデータ +store_value_3: action>: StoreValue key: ex2 value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"]] private: false # テーブルを比較する +compare_table_2: action>: CompareTable leftTerm: ${ex1} rightTerm: ${ex2} method: subtract header: true private: false
# 変数に保存 +store_value_2: action>: StoreValue key: bb value: [["名前","年齢","会社名","年収","備考"],["jack","22","tutorial","xxx","parttime job only"]] private: false # 変数に保存 +store_value_1: action>: StoreValue key: aa value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"]] private: false # テーブルを比較する +compare_table_1: action>: CompareTable leftTerm: ${aa} rightTerm: ${bb} method: add identifier: '‘A&B&C&D’' header: true private: false
# 変数に保存 当日取得したデータ +store_value_4: action>: StoreValue key: ex1 value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"],["jacy","29","robotic","xxxx"],["janne","27","roboticcrowd","xxx"]] private: false # 変数に保存 昨日取得したデータ +store_value_3: action>: StoreValue key: ex2 value: [["名前","年齢","会社名","年収"],["jane","32","tutorial","xxx"]] private: false # テーブルを比較する ex1にあってex2にない行を抽出 +compare_table_3: action>: CompareTable leftTerm: ${ex1} rightTerm: ${ex2} method: subtract header: true private: false # 変数に保存 +store_value_6: action>: StoreValue key: subtracted value: +compare_table_3 private: false # テーブルを比較する ex1からex2に存在する行のみ抽出 +compare_table_4: action>: CompareTable leftTerm: ${ex1} rightTerm: ${subtracted} method: subtract header: true private: false
comparetable/compare tabel
このページは役に立ちましたか?
サイトを見て解決しない場合はAUTOROにログインし、チャットよりお問い合わせください。