Eightに保存された名刺情報をTableauを使って地図上に可視化してみる

仕事柄たくさんの方と会いEightで名刺情報を取り込み管理しているのですが、イベントやセミナーなどでお会いした方にお会いする場合、住所だけですと、どこに会社があるのかぱっと見わかりづらい。１社ずつGoogle Mapで調べていくのも大変なので、一覧にして表示できないかと考えました。データを活用するには事前準備は大事なので、いつか使うかもしれないと思い、Eightには事前にラベルでどのイベントであった人なのかなど情報は埋め込んでいるので、効果的にTableauを使って地図上で可視化してみたいと思います。

前置きはこのくらいにして、さっそくEight名刺情報を使って可視化してみます。

# 目的
目的は、名刺管理サービスEightに保存された名刺情報があります。せっかく住所情報があるので、これをを使い、地図上にプロットして分析すること。その先でビジネスに使える活用方法を探ります。

##Eightって何？
名刺交換した後に、名刺をスマホやスキャナで読み取り管理してくれる便利なサービスです。
[Eight] (https://8card.net/)　基本無料で使うことができますが、今回のように名刺データをダウンロードするには[Eightプレミアム](https://eight.zendesk.com/hc/ja/articles/360000570896-Eight%E3%83%97%E3%83%AC%E3%83%9F%E3%82%A2%E3%83%A0%E3%81%A8%E3%81%AF)に加入が必要です。

<img width="1205" alt="スクリーンショット 2020-03-08 12.08.54.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/4490ac2f-93dd-57b2-0584-a15c9009cd59.png">

##Eightの標準情報

Eightにはどんな情報がふくまれているのでしょうか？　名刺をスキャンすると、以下の情報を自動的に読み取って保存されます。

- 会社名
- 部署名
- 役職
- 氏名
- e-mail
- 郵便番号
- 住所
- TEL会社
- TEL部門
- TEL直通
- Fax
- 携帯電話
- URL
- 名刺交換日　（スキャンした日もしくは手動で設定した日）

Eightが情報として持っているもの
- Eightでつながっている人
- 再データ化中の名刺
- '?'を含んだデータ

オプション（あとから追加できる）
- ラベル情報（自由に追加できる）

###Eightに追加で保存することができる便利なラベル情報
セミナーやイベントであった場合など、自由に追加できるラベル情報がある。たとえば、"Tableau勉強会"や、パートナー企業に"Partner"というラベル情報をつけておくことができる。そうするとCSVに出力した時に"Tableau勉強会"や"Partner"という列が追加され、ラベルをもった人/行に"1"が出力される。ラベルがついていない人/行のレコードにはNullとして出力される。

##前提条件
1. Eightのプレミアムサービスに加入していること。 (加入していないとCSVのダウンロードができません。)
2. Tableau Desktop がインストールされていること

###使用環境 ###
macOS Catalina バージョン10.15.3
Tableau Desktop 2019.4.4 

##EightからCSVをダウンロードする
[Eight](https://https://8card.net/)にログインし、画面右上の歯車アイコンから 【名刺のダウンロード】 を選択します。
*なお名刺をダウンロードするにはEightプレミアム（有料版）への加入が必要です。*

![スクリーンショット 2020-03-07 15.08.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/8a53734f-d7ee-79e4-3215-612017f302f6.png)


###CSVファイルをダウンロードする 
画面が切り替わると登録されている名刺の枚数が表示されます。
今回は、5781枚ありました。
 【ダウンロードファイルを作成】 を選択します。
![スクリーンショット 2020-03-07 15.31.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/74e6a284-ab83-9374-40dd-db1ec0a012cf.png)

これくらいの名刺情報の場合、ダウンロードファイル作成まで、約1分くらい待ちます。
ダウンロードファイルの準備が終わるとダウンロードのメニューが追加されます。

さっそくファイルをダウンロードしてみます。
ダウンロードするには、"UTF-8版はこちら"のリンクを右クリックします。
![スクリーンショット 2020-03-07 15.09.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/1f12c7dc-02ea-b3e6-8879-6d070d4d4b4c.png)

メニューからリンク先を別名で保存を選択します。
![スクリーンショット 2020-03-07 15.09.24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/ebb1431a-fcd9-34df-98cb-dd5cafc642a1.png)

##Tableauで取り込んでみる
さぁ、CSVができたので、早速Tableauでファイルを開いてみると、
<img width="573" alt="スクリーンショット 2020-03-07 15.36.18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/23ba4f0e-68a8-9964-a080-5a07dd1f89cb.png">
ヘッダーにそのままで使うには必要のないじゃまなレコードが！
Tableauに取り込むには、先頭から７行の不要な情報を削除しなければいけません。Excelやメモ帳などで開いて先頭から７行を手動で削除することもできますが、毎回やっているのは面倒です。

ということで、コマンドから削除してしましましょう。

##データ前準備　不要なレコードを削除する sedコマンド
先ほどのダウンロードした　eight.csv　（ファイル名は都度変更されますので、適宜名前を変更しています）から不要なのは先頭から１行目から７行目なので、 Linuxであれば以下コマンドを実行します。

``` 
sed '1,7d eight.csv
``` 

Macの場合は-iが必要なので、以下のようにちょっとだけ加工して実行する

``` 
sed -i .bak '1,7d' eight.csv
```
コマンドの説明
sedは特定の行を削除するコマンド。ファイル名.csvの中身の1行〜７行目までを削除しなさい。 実行したら上話書し、元のファイルは、.bakという拡張子付きでバックアップファイルを作成します。

*なお自分の環境のMacでは、sedコマンドは上記のように -i "バックアップ拡張子"（今回は.bakという拡張子を指定）をつけてあげないと動作しません。

すると、先頭７行が削除されて、先頭行はフィールド名、２行目からがデータ行となります。

##改めてTableauで取り込む
今度は、綺麗にデータを取り込めました。

Tableauで読み込みんだ、[郵便番号]を地理的役割＞郵便番号　で緯度経度に変換して使います。
<img width="518" alt="スクリーンショット 2020-03-08 13.01.38.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/abf8761f-fb46-0d06-9752-30bada9e2491.png">

##地図として可視化する
あとは郵便番号をダブルクリックするだけです。すると次のように地図上にマッピングされます。
<img width="1208" alt="スクリーンショット 2020-03-08 13.03.50.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/c13ecf54-65f0-f365-817b-e60560d74510.png">

地図の背景を変更して、名刺交換時期で色で識別するとこんな感じになります。

![スクリーンショット 2020-03-06 18.05.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/0253e0fd-dc52-3d65-639e-e90fecaeb5de.png)

##ある地点を中心に半径xxxmで選択する
地図上に表示された点を選択するために、円形選択を使用することで半径xxxm以内に含まれる企業だけを抽出するなど非常に簡単にできます。フィルター機能をつけると、地図だけでなく、リストも動的に変化して表示されます。

<img width="154" alt="スクリーンショット 2020-03-08 11.36.00.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/261bef2b-6dda-c49b-c548-f199d4c4f36a.png">

円形選択以外にも矩形選択、投げ縄選択など地図上から選択する方法が充実しています。
個人的には投げ縄選択から領域を指定した選択ができるのは嬉しい機能でした。特定のエリアだけは含めたい、外したいなどにも有効で、これにフィルター機能をプラスして使うことで特定の企業の抽出にも使えました。

##Salesforceとの連携##
TableauのダッシュボードにSalesforce連携とWeb連携をしてみました。
よくSalesfordeで企業情報を入力する際にその企業のWebサイトを閲覧しながら入力するのですが、一画面でみれると便利です。せっかくURL情報があるので、地図上の点をクリックすると右下のWebサイトが切り替わるようになります。
Eight、Tableau,地図にSalesforceがつながり営業は快適になります。顧客訪問が必要なサポート部門でも使えるかもしれませんね。
残念ですが、Salesforceの動作はもっさりしているので、そのまま使うというよりはあくまでも連携できるというイメージです。

<img width="1552" alt="スクリーンショット 2020-03-08 10.05.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/261f7b4c-b4ee-43d5-56d4-aa4afd5d345a.png">

##Google Mapとの連携##
住所がわかれば、オフィスビルの外観や経路検索などしてみたくなるものです。
次は、GoogleMap連携してみます。

TableauにCSVデータを取り込んだ後に、[住所]から新しく計算フィールドを作っておきます。
ここでは、名前をGooglemapとして新しいフィールドを作ります。新しいディメンションが追加されます。

<img width="515" alt="スクリーンショット 2020-03-08 12.23.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/c21ce5fb-e338-85d4-204a-a86dafd33e30.png">

計算フィールドを作る時は次のコードをコピーして使えます。

```
"https://www.google.com/maps/search/?api=1&query="+[住所]
```

あとは、ダッシュボード作成する際にオブジェクトからWebページを選択して、URLのアクションにこのフィールド(Googlemap)を追加するだけです。すると、下のスクリーンショットのように指定された会社の住所からGoogle Mapに住所を渡して検索結果として表示されます。

<img width="1552" alt="スクリーンショット 2020-03-08 11.34.48.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563351/fd2ca425-0c96-945f-c8e9-65c24d054d07.png">

上記の例ではGoogle Map連動しているので、ビルの外観や経路検索もその場でサクッとできるようになります。

#まとめ#
Talbeauを使うことで、Eightに保存された名刺情報を２０−３０分で簡単に地図上にマッピングできます。
さらにSalesforceやGoogle Mapを連携するのも簡単で、GIS（地理情報システム）として強化していくと、次のようなビジネス用途につかえそうです。

・営業ルート最適化
・営業テリトリー最適化
・パートナー企業マップ作成
・市場占有率
・販促エリア
・マーケティング、イベント効果測定

機械学習やAIを組み込めばActionable BIとしてさらにその活用方法が広がっていきそうです。

##最後に##
今回は郵便番号をTableauのジオコーディング機能を使って緯度経度に変換してプロットしました。これでも十分に使えるのですが、さらに前処理として住所から緯度経度に変換しておくともっと精度の高いプロットが可能になります。

もっと詳しく知りたいという方、Tableauを使いこなしたいという方には以下がオススメです。
- [Tableauで始めるデータサイエンス学習塾　at Connpass] (https://ds4tableau-1.connpass.com/)

###使用したソフトウェアとサービス###
- [Eight] (https://8card.net/)
- [Tableau] (https://www.tableau.com/ja-jp)
- [Google Map] (https://www.google.co.jp/maps/?hl=ja)
- [Salesforce] (https://www.salesforce.com/jp/)