如何将含多组坐标的单元格拆分至仅包含Latitude和Longitude的两列
处理多组坐标的拆分与汇总(Google Sheets 公式方案)
我来帮你搞定这个多组坐标的拆分汇总问题,用Google Sheets的原生公式就能完美解决,不用复杂脚本~
核心思路
先把单元格里的多组坐标按分隔符(; )拆分成独立的坐标组,再把每个坐标组拆分成纬度和经度,最后分别将所有纬度、经度用逗号拼接成字符串。
具体公式
假设你的原始坐标数据在A列,我们可以在B列(纬度汇总)和C列(经度汇总)分别使用以下公式:
B列(纬度汇总)公式
=ARRAYFORMULA(IF(ROW(A:A)=1,"LAT",IF(ISBLANK(A:A),"",TEXTJOIN(",",TRUE,INDEX(SPLIT(FLATTEN(SPLIT(A:A,"; ")),","),,1)))))
C列(经度汇总)公式
=ARRAYFORMULA(IF(ROW(A:A)=1,"LONG",IF(ISBLANK(A:A),"",TEXTJOIN(",",TRUE,INDEX(SPLIT(FLATTEN(SPLIT(A:A,"; ")),","),,2)))))
公式拆解(帮你理解怎么工作的)
咱们一步步看每个函数的作用:
SPLIT(A:A,"; "):把A列每个单元格里的多组坐标,按;(分号+空格)拆分成单独的坐标组(比如把01.00000, 02.00000; 03.00000, 04.00000拆成两个独立的坐标字符串)FLATTEN():把拆分后的多行多列数据转成单列,方便后续统一处理SPLIT(...,","):把每个坐标组按逗号拆分成纬度和经度两列INDEX(...,1)/INDEX(...,2):分别提取每一组的第1列(纬度)和第2列(经度)TEXTJOIN(",",TRUE,...):把所有提取到的纬度/经度用逗号连接,TRUE参数会自动忽略空值,避免出现多余的逗号ARRAYFORMULA:让公式自动应用到整列,加上表头判断和空单元格的处理逻辑
适配调整
如果你的坐标分隔符只有分号没有空格(比如01.00000,02.00000;03.00000,04.00000),只需要把公式里的SPLIT(A:A,"; ")改成SPLIT(A:A,";")就行。
而且这个方案完全兼容单组坐标的情况,当A列只有一组坐标时,公式会自动提取单个纬度和经度,和你之前用的单组公式效果一致~
内容的提问来源于stack exchange,提问作者Tai
相关产品推荐
相关产品推荐

