[WinActor]CSVでLEFT JOINクエリ(外部結合)

CSVで取得したデータでWinActorの繰り返し処理したい。

特定の項目を使って別のCSVから項目に該当するコードを解決したい。

AccessやらExcelの機能使えって話もあるかもしれないけど、CSV同士を掛け合わせたいとか複雑な中間ファイル作りたくないって状況もあるかと思います。

 

はい、スクリプト実行ステージで作ってみました。

 

1.CSV同士を外部結合(LEFT JOINクエリ)

LEFT JOINとINNER JOINってどっちがどうだっけ?って話。

  • LEFT JOIN左側の表は全レコード表示、右に特定項目がマッチした行だけくっつける
  • INNER JOIN左右の表で特定項目がマッチした行だけ表示

今回、このスクリプトを作ったきっかけはOCRで読み取ったCSVレコードで項目紐づけだったので、「全角/半角」の区別でマッチしなかった場面があり、全部「半角化」してから比較しています。

項目名が空白の列は強制的に削除されます。

(WinActorが取り込む際、空白の項目名があると、それより右側の項目が読めなくなるので・・・)

 

スクリプト実行ステージのスクリプトタブに以下のコードを張り付ければ実装できます。

 

2.設定タブはこんな感じ。

  • 元ファイル名 : 結合時に左側になるCSVファイルを指定
  • 参照ファイル名: 結合時に右側になるCSVファイルを指定
  • キー項目   :左右のCSVを関連付けする主キーの項目名を指定
  • 出力ファイル名: 結合後のCSVを出力するファイル名を指定
3.適用イメージはこんな感じ。

参照ファイルの方は右に項目がたくさんあっても全部追加されます。

途中でリスト削っちゃったら未処理の結果リスト残せないので、突合できない項目は空白にしてレコードは残します。

タグ: ,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です