2017-06-28 3 views
-2

Excelシートにこの種のデータがあります。一部では "テキスト" を持っていない可能性があります。"text:"の前にすべてを削除するにはどうすればよいですか?

{asdd ":" pagasasse " "qqwqwqww": "ACC-96d032ef-3cef-d692-9daa-05f08106e999"、 "pusherevent":" 前夜-96d032ef- [{"id": "122222222"、 "time":1493375728269、 "messaging":[{"sender":{"id": "96d032ef-3cef-d692" 3cef-d692-9daa-05f08106e999 " -9daa-05f08106e999 "}、" 受信者 ":{" ID ":" 598113966995478 "}、" タイムスタンプ ":1493375727943、" メッセージ ":{" 中間 ":"。ミッド$ cAAE_a0qfMcxh5WaBR1btCE7pLG5M " "SEQ":24608、"テキスト ":" フォーム__loadのF6910BF04A294FA59A89E398EF4B2E09 "}}]}]}" 私は "テキスト" の前にすべてのものを削除する方法を

+2

出力をフォーマットしてください。そして、あなた自身を試してコードを投稿することを考えてください。 – Trimax

+0

これは、Excel関数のみを使用して実現できます( 'RIGHT'、' LEN'、 'FIND')。あなたはそれに開放されていますか? –

+1

は、VBAソリューションの[InStr関数](https://support.office.com/en-us/article/InStr-Function-85d3392c-3b1c-4232-bb18-77cd0cb8a55b)を見てくださいかを見てExcelの式 '= FIND()'、 '= RIGHT'、および' = LEFT'はあなた自身で始まります。 –

答えて

0

F

=IFERROR(LEFT(RIGHT(A1,LEN(A1)-FIND("""text"":",A1,1)-7),FIND("""",RIGHT(A1,LEN(A1)-FIND("""text"":",A1,1)-7),1)-1),"text not found")

A VBA同等は次のようになります:

あなたのように呼び出すことができます
Function GetTextValue(str As String) As String 
    Dim tmpstr As String 
    If InStr(1, str, """text"":", vbTextCompare) = 0 Then 
     GetTextValue = "Text not found" 
    Else 
     tmpstr = Right(str, Len(str) - InStr(1, str, """text"":", vbTextCompare) - 7) 
     tmpstr = Left(tmpstr, InStr(1, tmpstr, """", vbTextCompare) - 1) 
     GetTextValue = tmpstr 
    End If 
End Function 

Sub test() 
Dim str as string 
str = ActiveSheet.Range("A1").value 
str = GetTextValue(str) 
ActiveSheet.Range("B1").value = str 
End Sub 

またはA1の値は次のようになります持っていることから、この結果を達成するためにormulaセル内で次のように使用してください。=GetTextValue(A1)

関連する問題