「ZARAは何処?」Alteryxで最寄りの店舗を見つける

2019.05.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。Alteryxサポートエンジニアとして勉強中のスズです。

「ZARAは何処?」

某怪獣映画で印象に残るセリフのひとつです。昨年末に地上波で放送があったときは、Alteryxチームのメンバーも各々テレビの前で盛り上がっていました。

テレビを見つつ雑談していたのですが、そのときにちらっと出たのがAlteryxで「ZARAは何処?」をやるというお話です。

AlteryxはPointデータを作成するために緯度経度の情報が必要であるため、当時は、実現するのは大変そう!と思って終わったのでした。

そして先日、空間分析ハンズオンセミナーに参加して体験したのがtruestar様の「MapFan GeoCoder」。MapFan APIを使用して、住所から緯度経度の情報を取得できる素晴らしいツールです。

「MapFan GeoCoder」を使うことで住所の一覧から緯度経度の情報を取得できることに気付いてしまい、人が考えたネタをパクってAlteryxで「ZARAは何処?」をやってみようと思い至ったのでした。

「ZARAは何処?」

店舗の住所一覧から緯度経度の情報を取得

まずはWebサイトから店舗一覧を取得し、住所から緯度経度の情報を取得します。以下のワークフローを作成してみました。

Text Inputツールには住所一覧があるURLを用意します。

DownloadツールではText Inputツールで用意したURLからデータを取得するよう設定します。

Downloadツールで取得した結果はこちら。「DownloadData」列に取得してきたデータがあります。

このままではデータを処理するのが難しいので、Text To Columnsツールを使用して改行(\n)で行を分けていきます。

行を分けたことで、データが見やすくなりました。

データを見ていくと、"name"という部分に店舗名が用意されていました。改行で行を分けましたので、店舗名は"name"がある行の下にあります。

Multi-Row Formulaツールを使用して、"name"の下の行に印を付けます。

先ほど印を付けた行と「所在地」の文字がある行が、店舗名と住所となります。

Filterツールを使用して、店舗名と住所のみ抜き出します。

Multi-Row Formulaツールを使用して、店舗名と住所の組み合わせでグループ化します。

Cross Tabツールを使用して、グループごとに店舗名と住所が同じ行になるようにデータの持ち方を変えます。

変換すると、データは以下のように表示されています。住所はまだspanタグで囲われています。

RegExツールを使用して、spanタグを取り除いた住所を作成します。

Selectツールを使用して、不要な列の削除と列の名前の変更を行います。

MapFan Geocoderツールを使用して、住所から緯度経度の情報を取得します。

結果を確認してみると、2ヶ所ほど複数マッチングという結果が出力されています。

複数マッチングとなった店舗があるショッピングモールを調べてみたところ、サイトから取得した住所とショッピングモールで示されている住所が異なるようです。ここはFormulaツールを使用して手動で住所を修正することにしました。

住所を修正して再度ワークフローを実行します。これで住所一覧から緯度経度の情報を取得できました。

店舗一覧のPointデータの作成

出力した緯度経度の情報から、Pointデータを作成してファイルに出力します。

Create Pointsツールを使用して、Pointデータを作成します。

Browseツールで地図を確認してみると、日本全国の店舗が表示されています。

Selectツールを使用して、店舗名、住所、Pointデータのみ残したデータを作成します。

作成したデータは、Output Dataツールを使用してyxdb形式のファイルに出力します。

最寄りの店舗の出力

新しいワークフローを作成し、店舗一覧のPointデータ(yxdb形式のファイル)と、最寄りの店舗を検索したい中心となる住所を用意します。

Text Inputツールを使用して住所を用意します。先ほどと同じ要領で、Pointデータを作成します。

店舗一覧と中心地のPointデータをFind Nearestツールに接続し、中心地から3km以内の店舗を抽出します。

Find Nearestツールで出力されたデータには、中心地から各店舗への距離があります。Sortツールを使用して距離の見近い順に並べ替えます。一番上にあるのが「六本木ヒルズ店」ですので、最寄りの店舗は「六本木ヒルズ店」となります。

Browseツールで出力してみると、以下のように表示されました。

最後に

今回はAlteryxで「ZARAは何処?」をやってみました。諦めていたネタでしたが、「MapFan GeoCoder」を使うことでようやく実現できました。とても便利なツールですので、機会がありましたらぜひお試しください。

参考サイト

Alteryxの導入なら、クラスメソッドにおまかせください

日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。

alteryx_960x400