Excel计算经纬度距离时横向拖动公式列固定行递增方法求助
解决Excel公式横向拖动时行号递增、列固定的问题
你需要的核心是让公式横向拖动时,保持列不变(始终引用C、D列),同时行号随横向拖动递增。可以通过INDEX函数实现,以下是具体方案:
修改后的完整公式
假设你把公式放在B2单元格,替换后的公式如下:
=6371*ACOS(COS(RADIANS(90-Information!$C$2))*COS(RADIANS(90-INDEX(Information!$C:$C,ROW()+COLUMN()-COLUMN($B$2))))+SIN(RADIANS(90-Information!$C$2))*SIN(RADIANS(90-INDEX(Information!$C:$C,ROW()+COLUMN()-COLUMN($B$2))))*COS(RADIANS(Information!$D$2-INDEX(Information!$D:$D,ROW()+COLUMN()-COLUMN($B$2)))))*1000
关键部分解释
INDEX(Information!$C:$C, 行号):固定锁定C列,根据后面计算出的行号,获取对应行的纬度值;D列同理用INDEX(Information!$D:$D, 行号)获取经度值。ROW()+COLUMN()-COLUMN($B$2):动态计算目标行号:- 当在B2单元格时,
COLUMN()返回2,COLUMN($B$2)也返回2,最终行号=2+2-2=2,对应Information!C2 - 横向拖动到C2时,
COLUMN()返回3,行号=2+3-2=3,自动切换为Information!C3 - 纵向拖动时,
ROW()会随当前行递增,比如B3单元格的行号=3+2-2=3,对应Information!C3,符合你的需求
- 当在B2单元格时,
适配调整
如果你的公式起始单元格不是B2,只需把公式中的$B$2替换为你实际的起始单元格即可(比如起始单元格是C2,就改成$C$2)。
内容的提问来源于stack exchange,提问作者Wei Loon
相关产品推荐
相关产品推荐

