タイムスタンプは csv ファイル形式で、各文字列は次のようになります。
TT_TU_MN009,"5009","200001010000","-1.8","3","4"
TT_TU_MN009,"5009","200001010200","-1.7","10","1"
TT_TU_MN009,"5009","200001011400","1","10","1"
...
私の目標は、この文字列から 2 番目、3 番目、4 番目の位置 (二重引用符なし) を独自の列に抽出することです。
- 5009
- 200001010000
- -1.8
私は最初のコラムでこれを達成することができました
=LEFT(A2;SEARCH(",";A2)-1)
しかし、他の 2 つの位置でそれを実行する方法がわかりません。VBA なしでも実現可能でしょうか?
よろしくお願いします
あ
答え1
セル内のテキスト文字列から n 番目のテキストを抽出する 2 つの異なる方法を提案したいと思います。
方法1:
セル内の数式
J16:=TRIM(MID(SUBSTITUTE("""" & $J$13& REPT(" ",6),"""",REPT(CHAR(32),255)),2*255,255))
注意
2*255テキストの位置を決定します。 はJ1325009番目の単語/テキストです。数式は3 番目として
20000101000カウントされるため、位置は 4 番目になります。したがって、 の数式 のセルではを に、の数式 のセルでは を に置き換えます。,J172*2554*2556*255-1.8J18
方法2:
VBAマクロで構成され、UDF(ユーザー定義関数)です。
- どちらかを押してくださいAlt+F11またはRight クリックスTABを押してポップアップメニューからコードを表示VB エディターを入手します。
- Cオピ &ポこのコードをモジュールとして保存します。
Function FindWord(Source As String, Position As Integer)
Dim arr() As String
arr = VBA.Split(Source, ",")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
FindWord = ""
Else
FindWord = arr(Position - 1)
End If
End Function
- セル内の数式
J3:=SUBSTITUTE(J1,CHAR(34),"") - セルに次の数式を入力します
J5:=FindWord(J3,2)
注意
- この数式では、
2セル内の 2 番目の単語/テキストが決定され、次の単語/テキストが決定されます=FindWord(J3,3)。
すべてを 1 つのセルに収める必要がある場合は、CONCATENATION を使用できます。




