0

3 つの異なる形式で緯度と経度の座標を持つセルがあります。セル内のコンテンツは次のようになります。

北緯35度21分 西経81度47分 / 北緯35.35度 西経81.79度 / 35.35; -81.79 (エレンボロ (1 月 11 日、EF2))
38°46'N 85°28'W / 38.76°N 85.46°W / 38.76; -85.46 (Madison (1/17, EF0))
など

最後の数値セット (35.35; -81.79) のみを抽出し、それぞれを緯度用と経度用の別の行に配置したいと考えています。

どうすればこれを行うことができますか?

4

2 に答える 2

3

数式を使用するだけで満足している場合-これが私の解決策です(元の文字列がA2から始まる列Aに配置されていると仮定します):

  1. B2 (緯度): =TRIM(MID($A2,SEARCH("@",SUBSTITUTE($A2,"/","@",2))+1,SEARCH("@",SUBSTITUTE($A2,";","@"))-SEARCH("@",SUBSTITUTE($A2,"/","@",2))-1)).
  2. C2 (経度): =TRIM(MID($A2,SEARCH("@",SUBSTITUTE($A2,";","@"))+1,SEARCH("@",SUBSTITUTE($A2,"(","@"))-SEARCH("@",SUBSTITUTE($A2,";","@"))-1)).
  3. 必要に応じて、両方の数式を自動入力します。

これにより、結果が文字列として返されます。それらを数値にしたい場合は=VALUE(...)、各式にラッパーを追加するだけです。ただし、私のローカル設定では小数点としてコンマを使用しているため、これを処理するためにもう 1 つ追加する必要がありSUBSTITUTEます。

便宜上、サンプル ファイルが共有されています: https://www.dropbox.com/s/twkcln8lozdgga9/CoordsSplit.xlsx

于 2013-01-23T17:55:45.153 に答える
0

以下を置き換えることから始めます。

\s+\(.*

空の文字列によって。次に置き換えます:

^.*/\s+

空の文字列によって。その後、最後の数字セットのみが残ります。それらを分割するのは簡単です( を使用\s*;\s*)。

perl でのデモ:

$ perl -ne 's,\s+\(.*,,; s,^.*/\s+,,; my @coords = (split(/\s*;\s*/)); print "Latitude: $coords[0]; longitude: $coords[1]"' <<EOF
> 35°21′N 81°47′W / 35.35°N 81.79°W / 35.35; -81.79 (Ellenboro (Jan. 11, EF2))
> 38°46′N 85°28′W / 38.76°N 85.46°W / 38.76; -85.46 (Madison (Jan. 17, EF0))
> EOF
Latitude: 35.35; longitude: -81.79
Latitude: 38.76; longitude: -85.46
于 2013-01-23T17:13:03.023 に答える