求基于指定直线划分(X,Y)坐标点为N/S组的Excel数学公式
Excel IF语句实现坐标点按指定直线南北侧分组
关键逻辑说明
你之前用IF(Y>=6566850,"N","S")只适用于水平直线,但这次的直线是过原点(322972,6566850)、方位角131.4°的斜线,得用向量叉乘符号来判断南北侧:
- 方位角是从正北顺时针转的角度,Excel里用
RADIANS()转成弧度供三角函数计算 - 对任意待判断点$(X,Y)$,计算叉乘表达式:
(X-322972)*SIN(RADIANS(131.4)) - (Y-6566850)*COS(RADIANS(131.4)) - 结果≥0 → 点在直线北侧(标记
N);结果<0 → 点在直线南侧(标记S)
直接可用的Excel公式
假设待判断点的X坐标在A2单元格,Y坐标在B2单元格,公式如下:
=IF((A2-322972)*SIN(RADIANS(131.4)) - (B2-6566850)*COS(RADIANS(131.4)) >= 0, "N", "S")
下拉填充即可批量处理所有点。
样本验证
- 北侧示例点(323072,6566950):代入计算得正数,返回
N - 南侧示例点(322872,6566750):代入计算得负数,返回
S
内容的提问来源于stack exchange,提问作者QGISgreenhorn
相关产品推荐
相关产品推荐

