競合他社の店舗など、住所による場所のリストを作成して地図に表示したいですか?ExcelでArcGISのカスタム関数を使えば簡単にできます!
なぜArcGIS for Excelを使って場所を見つけるのか?
簡単に言うと、より効率的だからです。サードパーティのデータをウェブで探し回ったり、自分で場所リストを手動で作成する必要はありません。数秒で場所のリストを生成し、慣れ親しんだExcel環境を離れることなくすぐに地図上に配置できます。
ArcGIS for Excelを使うもう一つの理由はフォーマットです。サードパーティからダウンロードしたデータはマッピングに適切に構造化されていない場合があります。ArcGIS for Excelで生成された場所リストは切り分けや加工が不要で、時間と労力のかかるデータ再構築なしでマッピングに使えます。
ArcGIS関数とは何か?
Excelでデータを扱う多くの人は関数や数式を使ったことがあるでしょう。関数は等号(=)で始まるあらかじめ設定された数式で、数学的、統計的、論理的な操作を助けます。例えば、=sumや=countはExcelで最もよく使われる関数の一部です。
2022年現在、ExcelにはArcGIS専用(つまりカスタム)関数があり、ジオコーディングやGeoenrichによるデータ強化、最適ルート検索やドライブ時間計算など基本的な空間分析が可能です。ArcGISカスタム数式はすべて=arcgisで始まります。以下では=arcgis.suggestaddress関数で場所リストを生成し、=arcgis.getcoordinatesおよび=arcgis.addheaders関数でマッピング準備する方法を説明します。
ArcGISカスタム関数のより包括的な概要については、このブログ記事とヘルプドキュメントをご覧ください。なお、ArcGIS関数の使用にはArcGIS Onlineクレジットが消費され、ユーザーはArcGIS組織アカウントにログインしている必要があります。
従来の数式とArcGIS Function Builderの違い
従来の関数や数式はExcelセルに直接入力する方程式です。短い数式には適していますが、長いものや異なるExcelシートからパラメーターを挿入する必要がある場合は複雑になります。構文(例えば単語の周りの引用符やパラメーター間のコンマ)を完璧に入力しないと機能しません。ArcGIS関数のユーザー体験を向上させる方法の一つがExcelのArcGISタブ内にある組み込みFunction Builderの利用です。

ヒント: ArcGIS for Excelアドインのダウンロード方法については私の以前の投稿またはGet ArcGIS for Excel ヘルプドキュメントをご覧ください。
Function Builderでは関数の構文が正しいか気にせずパラメーターを入力できます。セル番号を入力したり利用可能なパラメーターから選択して関数を作成できます。
下記例では=ARCGIS.ENRICHBYPOINT(C2, D2, , 1, "Miles", , "shopping", "MP08006a_B")という関数がFunction Builderでパラメーターを入力した場合と同じ結果になります。

シナリオ:コーヒー競合分析
ここでシナリオを想像しましょう。あるコーヒー会社がアイオワ州デモインに新店舗を建てたいと考えています。同社は競合分析用にコーヒー競合店の場所リストを作成したいと思っています。
=arcgis.suggestaddress 関数で場所を見つける
これには空白のExcelシートを開き、3つの競合店名、市名、州名を別々のセル(例:Store 1, City, State)に入力します。
次にこれらセル内テキストを=arcgis.suggestaddress 数式(下記参照)で使用し、それら店舗住所を検索します。

住所生成に使う数式は次のようになります:
=ARCGIS.SUGGESTADDRESS(C2, 100)。100は最大提案件数パラメーターで検索結果件数制限です。このパラメーターに数字を入れない場合、クレジット消費制限としてデフォルトで5件のみ返されますのでご注意ください。
ヒント: 数式が自動的にグループ化する配列から値だけ分離するため、新しい列やシートにセル内容をコピー&ペーストしてください。
独自に品質管理(QC)を行う
次に返された結果について独自に品質管理(QC)が必要です。例えばある店舗ではUrbandaleやPleasant Hill(アイオワ州デモイン市境外近郊)の住所も返されました。このデータも競合分析に含めるかどうかはあなた次第です。
=arcgis.getcoordinates 関数で場所を地図上に配置する
次にExcelシート内行データを地図上に配置できる場所情報へ変換します。そのための関数があります!
まず店舗名、市名、州名を書いたセル内容を削除し、新しいリスト住所用座標生成開始セルB2をクリックします。
=ARCGIS.GETCOORDINATES(A2) を使いセルA2住所座標取得から始めます。これでその住所の経度・緯度座標がそれぞれ列B・Cに生成されます。あとはセル右下角からリスト最下部までドラッグすれば残り住所も自動的に座標生成されます。

=arcgis.addheaders 関数で列ヘッダー追加
最後に座標列へジオコーディング用列ヘッダー追加が必要です。これは非常に簡単でセルB1へ=arcgis.addheaders を使います。この数式は先ほど作成したデータから列ヘッダーを自動生成します。

これでExcel上で地図表示可能な場所データができました。もしこれら店舗位置へコーヒー消費行動データも追加したければ=arcgis.enrichbypointなどで追加可能です。
最後のステップとしてExcelシートをテーブル化し地図へ追加して可視化します。その方法は私の前回ブログ投稿で説明しています。
楽しいマッピングライフを!素早く場所発見し、この投稿下部コメント欄でArcGIS Excel関数使用体験もぜひ共有してください。
参考資料リスト
Blog
ArcGIS for Excel のインストールと設定に関するヘルプドキュメント ArcGIS for Excel でデータをすばやくマッピングする ブログ記事
選択肢があります!ArcGIS for Excel でデータを視覚化する ブログ記事
ArcGIS for Excel カスタム関数のヘルプドキュメント ArcGIS for Excel カスタム関数の紹介 ブログ記事
Excel の数式の概要に関するヘルプドキュメント