跳至主要内容
Adaptive Planning
示例:计算距离以优化地区

示例:计算距离以优化地区

在指定销售地区期间,了解销售代表与其地区之间的距离会有所帮助。通过将代表指定到附近的地区,您可以:
  • 降低成本。
  • 减少差旅时间。
  • 加快销售周期。
如要自动计算距离,请将地区和代表与邮政编码维度值相关联。然后,在邮政编码描述字段中提供地理坐标。在计算型账户中,使用三角公式生成邮政编码之间的距离(以英里为单位)。在模型化工作表的显示列中显示距离计算结果。

先决条件

  • 安全性:
    “模型”权限。
  • 获取销售账户地区和销售代表位置的邮政编码对应的纬度和经度。有多个在线源提供邮政编码坐标。

导航

Compass.png 从导航菜单中,选择
“建模”

步骤

  1. 为销售账户邮政编码创建维度。
  2. 为销售代表邮政编码创建维度。
  3. 将计算添加到模型化工作表中:
    1. 将维度添加到模型化工作表中。
    2. 创建模型化计算型账户。
    3. 为距离添加显示列。
  4. 查看工作表,查看计算出的距离。

为销售账户邮政编码创建维度

Compass.png 从“建模”菜单中,选择
“维度”
  1. 创建 AccountZipCode 维度,并在“维度详细信息”中取消选中“列表维度”
    。此维度必须是分层维度。
  2. 创建与每个销售账户邮政编码完全相同的维度值。例如,如果邮政编码为 11411,则将维度值命名为 11411。
  3. 在该维度值的“描述”字段中,输入每个邮政编码的坐标。例如,邮政编码 11411 的坐标为
    40.694021,-73.736216.

为销售代表邮政编码创建维度

  1. 创建 RepZipCode 维度,并在“维度详细信息”中取消选中“列表维度”
    。此维度必须是分层维度。
  2. 创建与每个销售代表邮政编码完全相同的维度值。例如,如果邮政编码为 11422,则将维度值命名为 11422。
  3. 在该维度值的“描述”字段中,输入每个邮政编码的坐标。例如,邮政编码 11422 的坐标为
    40.66006,-73.736012.

将邮政编码维度添加到工作表中

Compass.png 从面包屑导航中,选择
“建模”
。从“工作表”菜单中,选择“按用户指定的工作表”
或“按层级指定的工作表”
  1. 选择要包括距离计算的模型化工作表旁边的“编辑”链接。
  2. 选择“列和层级”
  3. 将销售账户邮政编码的 AccountZipCode
    维度,拖动到模型化工作表构建器画布中
  4. 将销售代表邮政编码的 RepZipCode
    维度,拖动到模型化工作表构建器画布中的“AccountZipCode”下方。
  5. 保存工作表。

创建模型化计算型账户

此账户会计算两个邮政编码之间的距离,方法是对您在描述字段中提供的坐标进行求值。例如,用于计算两组坐标之间距离的通用公式需要使用 三角函数
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
用于第二个地点。邮政编码的维度值包含描述中的纬度和经度坐标。您需要对在计算型账户中需要使用的公式执行额外的文本处理,才能从描述字段中提取坐标。
  1. 使用面包屑导航返回到汇总。
  2. 选择
    “模型化账户”
  3. 从工具栏中,单击“新建计算型账户”
    ,然后输入账户详细信息:
    • 代码:Distance
    • 名称:距离(米)
    • 类型:计算型(定期)
  4. 为账户指定以下数据类型设置:
    • 显示格式:数字
    • 公式:
      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
  5. 保存账户。

为距离添加显示列

  1. 使用面包屑导航返回到“工作表汇总”。
  2. 选择“列和层级”
  3. 从元素列表中,展开“显示列”。
  4. 将“距离(米)”
    拖动到画布中的 RepZipCode 维度正下方。
  5. 单击“保存”。

查看工作表,以查看距离

从导航菜单中,选择“工作表”
,然后打开包含邮政编码维度列和显示列的工作表。“距离(米)”列显示销售账户邮政编码和销售代表邮政编码之间的距离。