前回までで、条件に合った情報をExcelに入力することが出来ました!
今回の記事では、重複した情報をExcelに入力しないように開発を進めます!
どの情報で重複判定できるのか?
改めてですが、今回のロボットの条件を決めた記事を確認します。
こちらの記事の前半でも記載していますが、今回のロボットの運用としては、毎日SUUMOで物件チェックをし重複した情報は記載しないようにしていきます。
こちらのロボットはSUUMOから物件のデータベースを作成しますが、データベースを作るのであれば同じ情報、重複した情報は入れてはいけないので、データベースを作るロボットを作成する場合には今回の内容を参考にしてみてください!
さて、ここで考える必要があるのが、「どの情報を見たらダブっていることが確認できるか?」ということです。
今回の場合は、住所を確認してExcel上に全く同じ住所があった場合には抽出してきた情報は書き込まず、同じ住所が見つからなかった場合にExcelに書き込むというように開発をしてみます。
恐らく住所が全く同じであれば、同じ物件である可能性が高いだろうということで、このような条件にしています。
もし全く同じ住所であっても異なる物件がある場合には、住所だけでなく販売価格などを組み合わせることで、重複しているかどうかの判定の精度を上げていくことも可能です。
Excelに書き込む前に住所を調べる
前回の記事で行を挿入して、その行に情報を入力するステップを作りましたが、住所を調べて書き込むかどうかを判定するのは、行を挿入する前に判定をしたいです。
そのため、下のキャプチャのように行挿入(Insert Rows)を選択しておきます。
BizRobo!の仕様上、このように行挿入のステップを選択した状態でステップを作ると、このステップの手前(左側)に新しいステップが出来ます。
この状態で、BizRobo!上のExcelのD列を選択・右クリック→「その他」でホバー→「名前付き範囲として設定」をクリックします。
するとこのように名前付き範囲のステップが作成され、D列が青枠で囲われます。
そして名前付き範囲のステップのファインダーの設定を変更します。
下のキャプチャのように、まず①のように名前付き範囲のステップを選択し、②のようにファインダーをクリック、③の箇所を「一致するセル」に変更します。
ここで何をしたのかというと、「D列の中で文字列が一致するセルを見つけて、そのセルを選択してください」というような指示をしています。
また、ここで探してくる文字列は住所なので、住所で探してくれるように④をクリックして「変数」を選択します。
そして、住所の変数を選択することで、D列で住所を探してくれるようになります。
このようにファインダーの設定が出来たら、下のキャプチャの赤枠の虫メガネをクリックすると、青枠のように全く同じ住所があると、そのセルを選択してくれます。
全く同じ住所が無い場合のみ先へ進む
ここまでやってきたように全く同じ住所があると、名前付き範囲のステップが正しく機能します。
全く同じ住所が無かった場合には、名前付き範囲のステップがエラーになります。
今回の場合は全く同じ住所が無かった場合だけ、先に進めてExcelに記入をさせたいです。
なので、名前付き範囲のステップでエラーが出た場合だけ先に進めるというように開発をします。
このような場合には、エラー処理で「次の代替手段を試行」を選択します。
そして、名前付き範囲のステップの手前にトライステップを作ります。
下のキャプチャの青枠のように名前付き範囲のステップを選択した状態で、赤枠のアイコンをクリックして、トライステップを選択します。
そうすると下のキャプチャのように点線で2つの分岐が出来ます。
パターンを分けるときにほぼ必ずトライステップを使いますので、今回でトライステップの使い方を覚えておきましょう!
今回の場合、名前付き範囲のステップでエラーが起こると、トライステップに戻って下の矢印の方へ進んでいきます。
そのため、下の流れの中に行挿入のステップとExcelへの入力のステップを移動させます。
下のキャプチャの青枠ように、名前付き範囲のステップの先へ行こうとするとエラーになる場合にはステップを無効化します。
そして、赤枠の2つのステップを下の工程へ移動させます。
ドラッグアンドドロップで移動することもできますし、右クリックで切り取り・貼り付けでも移動させることが出来ます。
下のキャプチャのようになったら大丈夫です!
Excelとして出力する
ここまでで、住所が重複している場合には何も記入をせず、新しい住所だった場合には記入するというように開発することが出来ました!
あとは、このExcelのデータを出力します。
今回は入力をした後にExcelへの出力を行いますので、入力後に新しいステップを作成→「アクションを選択」をクリック→「ファイルシステム」でホバー→「ファイル出力」をクリックします。
このファイル出力のステップの設定ですが、まずファイル名は、Excelを読み込んでいるファイル読込(はじめから2つ目のステップ)のファイル名をそのままコピペをしてください。
そうすることで、そのExcelに上書きをすることが出来ます。
またファイルコンテンツは「SUUMO抽出Excel」、ファイルエンコーディングは「Windows日本語」にしておきましょう。
ちなみに以前、開発をしたYahooファイナンスのロボットではループが全て実行された後で出力をしていましたが、今回はループの中で情報を入力した後で出力をしています。
どちらのやり方でも最終的な結果は同じですが、今回開発しているロボットは行に情報が書き込まれるたびにExcel出力をしているので、仮に途中でロボットがエラーで止まってしまった場合にも、途中までの結果はExcelとして出力されている状態になります。
どちらの位置にファイル出力を置いても大丈夫ですが、もし動きが安定しないロボットの場合などは、今回のように1行書き込むたびに出力をする方が安全かもしれません。
次回予告
さて、ようやく完成しました!(多分・・・)
次回はデバッグをしてエラーが出ないかどうかを確認し、もしエラーが出た場合には、その対処をしていきます!
お楽しみに!!