2017-02-05 8 views
1

私のAndroidデバイスからいくつかの統計情報があります。簡単に言えば、どのようにExcelで個々のフィールドを取り出すことができますか(外部言語を使用せずにExcel内で簡単にやりたいのですが)Excelで自分の文字列を解析する方法

たとえば、velの値を18.5にして別のセルに保存するにはどうすればよいですか。

Location[gps 40.459137,-87.661198 acc=8 et=+5d16h57m45s127ms alt=194.0 vel=18.5 bear=89.9 {Bundle[mParcelledData.dataSize=44]}] 

注:ノート18.5は同様に7.0できること。したがって、値の長さは常に固定ではありません。 A1内のデータと

+0

VBAを「外部言語」とみなしていますか?これはVBAではほとんど問題ありません。スプレッドシート式だけで*可能ですが、面倒です。 –

+0

さて、以下のような公式を使用するだけです。 –

+0

私はそれを読む前にVBAソリューションを含めました。あなたが道を変えた場合に備えて、私は残しておきます。私の意見では、VBAなしでExcelを使用することは、不必要に苦労しています。これは、マクロを使用するとはるかに強力なツールです。 @ Garyの学生の優れた答えは、より柔軟になるように調整することができます。 –

答えて

1

は、VBAソリューションですワークシート機能のように使用できます。

enter image description here

+0

を負担します。私はそれを繰り返す必要がある各ファイル、またはExcelはそれを格納し、それは永久になりますか? –

+0

一般的にはい、繰り返し使用するために個人用のマクロブックに保存することができます(私はそれを控えめに使用する傾向があります)。アドインを作成することもできますが、それはやや複雑です。個人用マクロブックに関する情報はこちらを参照してください。https://support.office.com/en-us/article/Copy-your-macros-to-a-Personal-Macro-Workbook-aa439b90-f836-4381-97f0-6e4c3f5ee566 –

+0

これを見てください:http://www.rondebruin.nl/win/personal.htm特に著者の "例2" –

2

、別のセルに入力します:あなたは、標準のコードモジュールに入力したら

Function GetVel(s As String) As Double 
    Dim fields As Variant 
    Dim i As Long 
    fields = Split(s) 
    For i = LBound(fields) To UBound(fields) 
     If fields(i) Like "vel=*" Then 
      GetVel = Val(Split(fields(i), "=")(1)) 
      Exit Function 
     End If 
    Next i 
End Function 

=LEFT(MID(A1,FIND("vel=",A1)+LEN("vel="),999),FIND(" ",MID(A1,FIND("vel=",A1)+LEN("vel="),999))-1) 
ここ

enter image description here

+0

注:18.5は7.0でもかまいません。したがって、値の長さは常に固定ではありません。それに対応していますか? –

+0

ところで、それは間違っています。それは私にどんな価値も与えません。 –

+0

@TinaJ *** 18.5 ***の後に**スペース**の文字がありますか? –

関連する問題