如何在Excel中利用Haversine公式筛选符合公共交通条件的地址
用Excel结合Haversine公式筛选符合公共交通条件的地址
步骤1:计算目标地址到各类公共交通站点的距离(英里)
在Excel中新增3列,分别计算目标地址到公交站、通勤铁路、地铁站的球面距离,使用Haversine公式(地球半径取3956英里,对应英里单位):
公交站距离(示例列:I列):
=ACOS(SIN(RADIANS(A2))*SIN(RADIANS(C2))+COS(RADIANS(A2))*COS(RADIANS(C2))*COS(RADIANS(B2-D2)))*3956
注:A=Address lat,B=Address long,C=bus lat,D=bus long,下拉填充所有行通勤铁路距离(示例列:J列):
=ACOS(SIN(RADIANS(A2))*SIN(RADIANS(E2))+COS(RADIANS(A2))*COS(RADIANS(E2))*COS(RADIANS(B2-F2)))*3956
注:E=rail lat,F=rail long地铁站距离(示例列:K列):
=ACOS(SIN(RADIANS(A2))*SIN(RADIANS(G2))+COS(RADIANS(A2))*COS(RADIANS(G2))*COS(RADIANS(B2-H2)))*3956
注:G=subway lat,H=subway long
步骤2:标记各类站点是否在5英里范围内
新增3列(示例列:L、M、N列),用IF函数判断距离是否≤5英里,符合条件标记1,否则标记0:
- 公交站是否达标:
=IF(I2<=5,1,0) - 通勤铁路是否达标:
=IF(J2<=5,1,0) - 地铁站是否达标:
=IF(K2<=5,1,0)
步骤3:统计符合条件的公共交通类别数量
新增一列(示例列:O列),计算上述3列的和,得到当前地址覆盖的公共交通类别数:=L2+M2+N2
步骤4:筛选目标地址
使用Excel的筛选功能,对O列进行筛选:
- 筛选值为3:得到5英里范围内同时包含三类公共交通的地址
- 筛选值为1:得到5英里范围内仅包含一类公共交通的地址
内容的提问来源于stack exchange,提问作者ludwigf235




