提取excel单元格中括号内的纬度和经度值

我有像这样的列“5680 Konkel St底特律48210(42.3270550004,-83.1107549997)”我只是想提取拉长期。 通常我会做a =右(a2,30),但拉长是不同的长度,所以它不工作

对于lats(逗号分隔的数字中的第一个数字)。

 =--REPLACE(REPLACE(A1, FIND(",", A1), LEN(A1), TEXT(,)), 1, FIND("(", A1), TEXT(,)) 

多头(逗号分隔的数字中的最后一个数字)。

 =--REPLACE(LEFT(A1, LEN(A1)-1),1,FIND(",",A1)+1,TEXT(,)) 

自定义数字格式为0.0########## 。 在下面的图片中注意右alignment的真实数字。

在这里输入图像说明

一个更长的公式:

 =--TRIM(MID(SUBSTITUTE(SUBSTITUTE(MID($A$1,FIND("(",$A$1)+1,LEN($A$1)),")",""),",",REPT(" ",999)),(COLUMN(A:A)-1)*999+1,999)) 

把它放在B1中,并复制到C1。

然后根据需要格式化。

在这里输入图像说明

如果我理解得很好,A列中的每个单元格都包含一个文本,例如:“5680 Konkel St Detroit 48210(42.3270550004,-83.1107549997)”,并且您要在括号中提取这两个数字。

我会build议你不要使用其他人提出的公式,因为他们的公式错综复杂,难以维护。 如果你想了解你在做什么,请使用额外的列(如果你愿意,可以随后隐藏),按照以下步骤逐步完成:

在列B,在单元格B1中input公式= FIND(“(”,A1)。

这将返回一个整数,这是单元格A1中原始文本中字符“(”的位置。

然后在C列的C1单元格中input= FIND(“,”,B1),我们用B1中返回的前一个值作为起始索引,因为我们知道“,”位于“

在D列,在D1单元格中input= MID(A1,B1 + 1,C1-B1),这会给你第一个数字。

然后在E列的E1单元格中input= FIND(“)”,C1),我们用C1作为起始索引,因为我们知道“)”位于“,”

最后在F列,在F1单元格中input= MID(A1,C1 + 2,E1-C1-1),这会给你第二个数字。