例: 地域最適化の距離を計算
営業担当者と地域間の距離の把握は営業地域の割り当て時に役立ちます。営業担当者を近隣の地域に割り当てることで、次が可能になります。
- コスト削減
- 移動時間の短縮
- 営業サイクルの高速化
距離を自動計算するには、地域と営業担当者を郵便番号の属性値に関連付けます。次に、郵便番号の説明フィールドに地理座標を提供します。算出科目の三角数式を使用して郵便番号の間の距離をマイルで生成します。モデル シートの表示列に距離の計算結果を表示します。
前提条件
前提条件
- セキュリティ: "モデル" 権限
- 営業科目の地域と営業担当者の位置の郵便番号について緯度と経度を取得します。複数のオンライン ソースによって郵便番号の座標が提供されます。
ナビゲーション
ナビゲーション メニューから "モデリング"
を選択します。ステップ
- 営業科目の郵便番号の属性を作成します。
- 営業担当者の郵便番号の属性を作成します。
- モデル シートに計算を追加します。
- モデル シートに属性を追加します。
- モデル算出科目を作成します。
- 距離の表示列を追加します。
- シートを表示して計算された距離を確認します。
営業科目の郵便番号の属性を作成
"モデリング" メニューから "属性"
を選択します。
- AccountZipCode 属性を作成し、属性詳細の"リスト属性"をオフにします。この属性は階層的でなければなりません。
- 個々の営業科目の郵便番号とまったく同じ名前を付けた属性値を作成します。たとえば、郵便番号が 11411 であれば、属性値の名前を 11411 にするといった具合です。
- その属性値の "説明" フィールドに個々の郵便番号の座標を入力します。たとえば、郵便番号が 11411 の場合、座標値は次のようになります。40.694021,-73.736216.
営業担当者の郵便番号の属性を作成
- RepZipCode 属性を作成し、属性詳細の"リスト属性"をオフにします。この属性は階層的でなければなりません。
- 個々の営業担当者の郵便番号とまったく同じ名前を付けた属性値を作成します。たとえば、郵便番号が 11422 であれば、属性値の名前を 11422 にするといった具合です。
- その属性値の "説明" フィールドに個々の郵便番号の座標を入力します。たとえば、郵便番号が 11422 の場合、座標値は次のようになります。40.66006,-73.736012.
シートに郵便番号の属性を追加
ブレッドクラムから "モデリング"
を選択します。"シート" メニューで "ユーザー割当シート"
または "組織割当シート"
をクリックします。
- 距離計算を含めたいモデル シートの横にある "編集" リンクを選択します。
- "列と組織"を選択します。
- 営業科目の郵便番号のAccountZipCode属性をモデル シート ビルダー キャンバスにドラッグします。
- AccountZipCode の下にある営業担当者の郵便番号のRepZipCode属性をモデル シート ビルダー キャンバスにドラッグします。
- シートを保存します。
モデル算出科目を作成
この科目は、説明フィールドで提供する座標を評価することによって 2 つの郵便番号間の距離を計算します。たとえば、2 つの座標セット間の距離を評価する一般的な数式には 三角関数が必要です。
ACOS( COS( RADIANS(90-Lat1)) *COS( RADIANS(90-Lat2)) +SIN( RADIANS(90-Lat1)) *SIN(RADIANS(90-Lat2)) *COS( RADIANS(Long1-Long2))) * 3958.756
Lat1
および Long1
が最初の位置の緯度と経度である場合、 Lat2
および Long2
は 2 番目の勤務地です。郵便番号の属性値については、説明に緯度と経度の座標が含まれています。算出科目において必要な数式には、説明フィールドから座標を引き出すための追加的なテキスト処理が必要です。- ブレッドクラムを使用して "サマリ" に戻ります。
- "モデル科目"を選択します。
- ツールバーで"新規算出科目を作成"をクリックして、科目の詳細を入力します。
- コード: 距離
- 名前: 距離 (m)
- タイプ: 計算 (フロー)
- 科目に対し、これらのデータ タイプの設定を提供します。
- 表示形式: 数値
- 数式:acos( cos( radians(90- tonumber(substring(this.AccountZipCode.description,0,search(this.AccountZipCode.description,","))))) * cos(radians(90- tonumber(substring(this.RepZipCode.description,0,search(this.RepZipCode.description,","))))) + sin(radians(90- tonumber(substring(this.AccountZipCode.description,0,search(this.AccountZipCode.description,","))))) * sin(radians(90- tonumber(substring(this.RepZipCode.description,0,search(this.RepZipCode.description,","))))) * cos(radians( tonumber(substring(this.AccountZipCode.description,search(this.AccountZipCode.description,",")+1,99)) - tonumber(substring(this.RepZipCode.description,search(this.RepZipCode.description,",")+1,99)))) ) * 3958.756
- 小数部桁数: 4
- 科目を保存します。
距離の表示列を追加
- ブレッドクラムを使用してシート サマリに戻ります。
- "列と組織"を選択します。
- "要素" のリストから "表示列" を展開します。
- "距離"(m) を、RepZipCode 属性のちょうど下にあるキャンバスへドラッグします。
- 保存します。
シートを表示させて距離を確認
ナビゲーション メニューから "シート"
を選択し、郵便番号属性列と表示列を含むシートを開きます。"距離 (m)" 列は、営業科目と営業担当者の郵便番号間の距離を示します。