テリトリー デザイン
目的
本演習では、営業担当エリア分けの情報を持つテーブル データを用いて、既存エリアを可視化したテリトリーを作成し、以下の要素を考慮してテリトリーを自動最適化する方法を学びます。
- 各営業担当エリアの顧客数の合計値を均等にする。
- 各営業担当エリアが担当拠点を中心にまとまり、飛び地を持たないようにする。
演習
演習用データのダウンロード
- BA Pro チュートリアル-テリトリー プロジェクトパッケージをダウンロードします。
- ダウンロードした「BAProチュートリアル-テリトリー.ppkx」を開きます。
[演習1] マップを開きます。

既存の営業担当エリア情報テーブルの確認
プロジェクトパッケージはデフォルト設定では、以下の場所に展開されます。
C:\Users<ユーザー名>\Documents\ArcGIS\Packages\BAProチュートリアル-テリトリー_xxxx
既存の営業担当エリア分けの情報を持つテーブル データをマップに追加します。
- [マップ] タブ → [レイヤー] グループの [データの追加] をクリックします。
- [参照] を選択して、[データの追加] ダイアログを開きます。
- 演習データ内の Excel シートを選択し、[OK] をクリックします。
<上記展開先>\commondata\userdata\既存の営業担当エリアリスト.xlsx\担当エリア$
[コンテンツ] ウィンドウに「担当エリア$」レイヤーが追加されます。
- 「担当エリア$」レイヤーを右クリック → [開く] をクリックし、テーブルを開きます。
テーブルに、以下の情報が格納されていることを確認します。
- 町丁字等コード
- 町丁字等名
- 顧客数
- 担当拠点コード
- 担当拠点名

- テーブルの [×] ボタンをクリックして、テーブルを閉じます。
営業担当エリア ポリゴンの作成
上記テーブル データを使用して、営業担当エリアの情報を持つ町丁・字等ポリゴンを作成します。
- ArcGIS Pro 上部の [コマンド検索] で「標準区画」と入力します。
- 検索結果の中の [標準区画商圏の生成 (Generate Standard Geography Trade Areas)] ツールをクリックして開きます。
- 以下のように設定して、[実行] をクリックします。
| パラメーター | 設定値 |
|---|---|
| 区画レベル | 町丁・字等 (JP.Blocks) |
| 出力フィーチャクラス | 世田谷区営業担当エリア |
| 入力タイプ | テーブル |
| 区画 ID テーブル | 担当エリア$ |
| 区画キー フィールド | 町丁字等コード |
マップ上に「担当エリア$」テーブルの属性が結合された状態で、世田谷区内の町丁・字等ポリゴンが追加されます。

現状のテリトリーを可視化
前のステップで生成した世田谷区の町丁・字等ポリゴンに含まれる営業担当拠点の情報を基に、現状の担当エリアを再現したテリトリーを作成します。
- ArcGIS Pro 上部の [コマンド検索] で「テリトリー インポート」と入力します。
- 検索結果の中の [テリトリー ソリューションのインポート (Import Territory Solution)] ツールをクリックして開きます。
- 以下のように設定します。
- 入力データ:世田谷区営業担当エリア
- テリトリー ソリューションの名前:現状の営業担当エリア
- [レベル設定] パラメーターを以下のように設定します。
- レベル名:ベース
- ID フィールド:町丁字等コード
- 名前フィールド:町丁字等名
- 上位 ID フィールド:担当拠点コード
- [他を追加] をクリックし、追加で以下のように設定します。
- レベル名:テリトリー
- ID フィールド:担当拠点コード
- 名前フィールド:担当拠点名
- 下図のように設定されていることを確認し、[実行] をクリックします。

マップ上に、現状の営業担当を可視化したテリトリー ソリューション レイヤーが追加されます。なお、テリトリーの色分けは画像と異なる場合があります。

テリトリー ソリューション レイヤーは、テリトリー デザインに関連する各種レイヤーが格納されるグループ レイヤーです。デフォルトで以下の 2 種類のレイヤーが格納されます。
- ベース レイヤー:テリトリーを構成する最小単位の区画レイヤー (レベル 0)
- ポリゴンまたはポイント フィーチャを設定できます。
- テリトリー レイヤー:ベース レイヤーやテリトリー レイヤーをグルーピングしたレイヤー (レベル 1~)
- [テリトリー ソリューションの作成] 時にレベル 1 のテリトリー レイヤーが自動で 1 つ作成され、初期設定では空のレイヤーとして出力されます。
- テリトリー レイヤーは複数のレベルを階層的に作成することができ、それぞれのレベルでテリトリーを構築することができます。

結果の確認
作成されたテリトリー (営業担当エリア) の結果を [テリトリーの検証] ツールを使って確認します。
- [コンテンツ] ウィンドウ上の「現状の営業担当エリア」レイヤーを選択し、上部に表示される [テリトリー デザイン] タブをクリックします。

- [テリトリーの検証] ボタンをクリックし、[テリトリーの検証 (Validate Territories)] ツールを開きます。
- デフォルトの設定のまま [OK] をクリックします。
- 結果がフローティングで表示されます。
「テリトリーが連続していません (3)」というメッセージが表示されています。これは、3 つのテリトリーで飛び地が発生していることを表します。

チャートの作成
次に、テリトリーごとに顧客数の合計値を比較するチャートを作成します。事前準備として、テリトリー レイヤーに対して「顧客数の合計値」をレベル変数として追加します。
- [コンテンツ] ウィンドウ上の「現状の営業担当エリア」レイヤーを選択し、上部に表示される [テリトリー デザイン] タブをクリックします。
- [変数の追加] ボタンをクリックし、[レベル変数の追加 (Add Level Variables)] ツールを開きます。
- 以下のように設定します。
- 入力テリトリー ソリューション:現状の営業担当エリア
- レベル:テリトリー[1]
- ベース レベル:ベース[0]
- [変数] パラメーターを以下のように設定します。
- 統計フィールド:顧客数
- 統計:合計
- フィールド名:顧客数
- フィールドのエイリアス名:顧客数
- 下図のように設定されていることを確認し、[OK] をクリックします。

テリトリー レイヤーに対して顧客数合計値のレベル変数を設定できました。次に、顧客数の合計値をチャートで可視化します。
- [テリトリー デザイン] タブの [チャートの作成] ボタンをクリックします。
各テリトリーの顧客数の合計値を比較できるチャートを作成できました。この結果を見ると、拠点 C および E の顧客数が特に多く、拠点によって偏りがあることが分かります。

ここまでの操作で、既存テリトリーを可視化し、テリトリーの結果をマップやチャートで確認することで現状のエリア分けの改善点を把握しました。ここからの手順では、既存のテリトリーを最適化します。
テリトリー ソリューション レイヤーの作成
- [演習2] マップを開きます。
[コンテンツ] ウィンドウおよびマップ上に「営業拠点」レイヤーおよび「世田谷区ポリゴン」レイヤーが追加されていることを確認します。
- [解析] タブ → [ワークフロー] グループの [ビジネス解析] ボタン → [新しいテリトリー デザイン ソリューション] をクリックします。
- [テリトリー ソリューションの作成 (Create Territory Solution)] ツールが開いたら、以下のように設定してツールを実行します。
| パラメーター | 設定値 |
|---|---|
| 入力フィーチャ | 世田谷区ポリゴン |
| テリトリー ソリューションの名前 | 営業担当エリアの最適化 |
| ID フィールド | 町丁字等コード |
| 名前フィールド | 町丁字等名 |
マップ上に、世田谷区ポリゴンをベースにした「営業担当エリアの最適化」レイヤーが追加されます。

レベル変数の設定
次に、テリトリー分けを行う際の最小単位である「ベース レイヤー」に含まれる数値フィールドをレベル変数として設定します。本演習では、世田谷区ポリゴンのポリゴン数および「顧客数」フィールドの合計値の 2 つをレベル変数として設定します。
[コンテンツ] ウィンドウ上の「営業担当エリアの最適化」レイヤーを選択し、上部に表示される [テリトリー デザイン] タブをクリックします。
[テリトリー デザイン] タブの [変数の追加] ボタンをクリックして、[レベル変数の追加 (Add Level Variables)] ツールを開きます。
以下のように設定します。
- 入力テリトリー ソリューション:営業担当エリアの最適化
- レベル:テリトリー [1]
- ベース レベル:世田谷区ポリゴン [0]
[変数] パラメーターを以下のように設定します。
- 統計フィールド:顧客数
- 統計:合計
- フィールド名:顧客数
- フィールドのエイリアス名:顧客数
[他を追加] をクリックし、以下のように設定し、[OK] をクリックしてツールを実行します。
- 統計フィールド:顧客数
- 統計:個数
- フィールド名:エリア数
- フィールドのエイリアス名:エリア数
レベル変数のバランス調整
テリトリー デザインでは、レベル変数に対して重みを個別に設定し、テリトリーを最適化する際に重視する指標の優先度を制御できます。今回は、各担当エリアの顧客数の合計値がなるべく均等になるように、顧客数の優先度を高く設定します。
- [テリトリー デザイン] タブの [バランス調整変数] ボタンをクリックして、[バランス調整変数の設定 (Set Balance Variables)] ツールを開きます。
- 以下のように設定し、[OK] をクリックしてツールを実行します。
| パラメーター | 設定値 |
|---|---|
| 入力テリトリー ソリューション | 営業担当エリアの最適化 |
| レベル | テリトリー [1] |
| バランス調整変数 | 顧客数:70 エリア数:30 |
距離パラメーターの設定
テリトリーを最適化する際には、距離 (直線距離もしくはネットワーク距離) を考慮できます。
- [テリトリー デザイン] タブの [距離パラメーター] ボタンをクリックして、[テリトリー距離パラメーターの設定 (Set Territory Distance Parameters)] ツールを開きます。
- 以下のように設定し、[OK] をクリックしてツールを実行します。
| パラメーター | 設定値 |
|---|---|
| 入力テリトリー ソリューション | 営業担当エリアの最適化 |
| レベル | テリトリー [1] |
| 距離タイプ | 直線 |
| 計測単位 | キロメートル |
シード ポイントの追加
拠点を起点にしたテリトリーを構築する場合は、テリトリー シード ポイントを設定します。今回は、営業拠点をシード ポイントとして設定します。
- [テリトリー デザイン] タブの [シード ポイントの読み込み] ボタンをクリックして、[テリトリー シード ポイントの追加 (Add Territory Seed Points)] ツールを開きます。
- 以下のように設定し、[OK] をクリックしてツールを実行します。
| パラメーター | 設定値 |
|---|---|
| 入力テリトリー ソリューション | 営業担当エリアの最適化 |
| レベル | テリトリー [1] |
| 入力シード ポイント フィーチャ | 営業拠点 |
| フィールド マップ | 名前:拠点名 ID:拠点コード |
「営業担当エリアの最適化」レイヤーに「シード ポイント テリトリー」が追加されます。

テリトリーの解析
ここまで、テリトリー最適化のための設定を実施しました。これらの設定を基に解析を実行し、最適化したテリトリーを構築します。
- [テリトリー デザイン] タブの [解析の実行] ボタンをクリックして、[テリトリーの解析 (Solve Territories)] ツールを開きます。
- 以下のように設定し、[OK] をクリックしてツールを実行します。
| パラメーター | 設定値 |
|---|---|
| 入力テリトリー ソリューション | 営業担当エリアの最適化 |
| レベル | テリトリー [1] |
| テリトリー数を決定する方法 | ユーザー定義 |
| テリトリー数 | 7 |
テリトリーの解析が実行され、「営業担当エリアの最適化」テリトリー ソリューション レイヤーが色分けされます。テリトリー シード ポイントを中心にしたテリトリーが構築されました。

結果の確認
作成されたテリトリーの顧客数やエリア数が均等に割り振られているのか確認します。
- [テリトリー デザイン] タブの [チャートの作成] ボタンをクリックします。
- [チャート] ウィンドウ左上の [プロパティ] ボタンをクリックします。
- チャート プロパティの [数値フィールド] → [+ 選択] ボタンをクリックし、「エリア数」にチェックを入れて [適用] をクリックします。
各テリトリーの顧客数およびエリア数を比較できるチャートが表示されます。各テリトリーの顧客数およびエリア数が自動的に均一化されていることが分かります。
テリトリーの手動調整
構築したテリトリーは、各テリトリーのレベル変数の値をチャートで確認しながら、マップ上で対話的に調整することができます。
- [テリトリー デザイン] タブの [選択] ボタンをクリックし、マップ上でテリトリーの割り当てを変更したいエリアを選択します。

- [テリトリーの変更] をクリックし、[テリトリーの変更] ウィンドウで、割り当てたいテリトリーを選択し、[割り当て] をクリックします。

[テリトリーの変更] ウィンドウには、テリトリーの変更作業に役立つ各種オプションがあります。選択したテリトリーにズームしたり、テリトリーのフラッシュ、割り当て変更後のレベル変数値の変化を確認したりできます。

テリトリーの割り当てを変更すると、マップ上のレイヤーの色分けおよびチャートが更新されます。
- 必要に応じて、マップおよびチャートを確認しながら手順 1, 2 を繰り返し、テリトリーの割り当てを調整します。
以上の手順で、テリトリーの手動調整を実施できます。
最適化したテリトリーの結果をエクスポート
最適化したテリトリーの結果を、フィーチャクラスとしてエクスポートします。
- [テリトリー デザイン] タブの [ソリューションのエクスポート] ボタンをクリックして、[テリトリー ソリューションのエクスポート (Export Territory Solution)] ツールを開きます。
- 以下のように設定し、[OK] をクリックしてツールを実行します。
| パラメーター | 設定値 |
|---|---|
| 入力テリトリー ソリューション | 営業担当エリアの最適化 |
| 出力フィーチャクラス | 最適化後の営業担当エリア |
| 出力形状タイプ | テリトリー境界 |
マップに「最適化後の営業担当エリア」レイヤーが追加されます。
- [コンテンツ] ウィンドウの「最適化後の営業担当エリア」レイヤーを右クリック → [シンボル] をクリックします。
- シンボル設定を以下のように変更します。
- プライマリ シンボル:個別値
- フィールド 1:テリトリー: 名前
マップ上の「最適化後の営業担当エリア」レイヤーが、先ほど調整したテリトリー別に色分けされます。
テリトリーの結果をテリトリー境界としてエクスポートすると、フィーチャの形状としてはベース レイヤー (本演習における「世田谷区ポリゴン」) と同じものが出力されますが、属性情報にはベース レイヤーが元々持つ属性に加え、テリトリー レイヤーの持つ属性も付与されます。各エリアが割り当てられたテリトリーや、各テリトリーの顧客数の合計値などを確認することができます。

- [プロジェクト] タブ → [保存] を選択し、プロジェクトを保存します。
まとめ
この演習では、既存のテリトリーを可視化し、現状のエリア分けの改善点を把握しました。その後、数値情報や位置情報を基に営業担当エリアのテリトリーを最適化し、テリトリーの結果を手動で調整してエクスポートしました。
また、以下のツールの操作方法を学びました。
- [標準区画商圏の生成] ツール
- [テリトリー ソリューションのインポート] ツール
- [レベル変数の追加] ツール
- テリトリー チャートの作成
- [テリトリーの検証] ツール
- [テリトリー ソリューションの作成] ツール
- [バランス調整変数の設定] ツール
- [テリトリー距離パラメーターの設定] ツール
- [テリトリー シード ポイントの追加] ツール
- [テリトリーの解析] ツール
- テリトリーの割り当て
- [テリトリー ソリューションのエクスポート] ツール