2016-10-10 2 views
0

Habe versucht, es auszuarbeiten, ist aber nicht gelungen. Ich versuche, übersetzte Daten aus einer JSON-Datei zu extrahieren und die verschiedenen in verschiedenen Spalten übersetzten Daten zu extrahieren. Wichtig zu wissen ist, dass die Daten nicht immer die gleiche Sequenz haben.Excel - Wie man einen Text in einem Text basierend auf einem Kriterium im selben Text extrahiert

Die json sieht wie folgt aus:

{ "de": "Leben", "nl-BE": "leven", "de-DE": "Leben", "fr-BE":“ la vie "}

Siehe Beispiel in Excel, was ich erreichen möchte. Excel example

Column A                 Column B Column C Column D Column E 
Json                 "en" "nl-BE" "de-DE" "fr-BE" 
{"en":"life","nl-BE":"leven","de-DE":"Leben","fr-BE":"la vie"}   life leven Leben la vie 
{"nl-BE":"Kinderen","de-DE":"Kinder","en":"Children","fr-BE":"Enfants"} Children Kinderen Kinder Enfants 

Vielen Dank im Voraus.

+0

Hat eine der Antworten für Sie arbeiten? Diese Seite lebt von Rückmeldungen. Wenn etwas funktioniert hat, bitte als korrekt markieren, indem Sie auf das Häkchen in der Antwort klicken. Wenn sie nicht funktionieren, lassen Sie uns bitte wissen, was schiefgelaufen ist, damit wir die Antworten besser beantworten können. –

Antwort

1

Verwenden Sie diese Formel:

=SUBSTITUTE(SUBSTITUTE(TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2,":",REPT(" ",99)),",",REPT(" ",99)),FIND(B$1,SUBSTITUTE(SUBSTITUTE($A2,":",REPT(" ",99)),",",REPT(" ",99)))+99,99)),"""",""),"}","") 

Legen Sie es in B2 Kopie über und ab.

enter image description here

1

Neben @ScottCraner ‚s ausgezeichnete Antwort, könnten Sie eine UDF in VBA schreiben. In einem Standard-Code-Modul gesteckt:

Function JsonExtractor(json As String, key As String) As String 
    Dim data As String 
    Dim items As Variant 
    Dim item As Variant 

    data = Trim(json) 
    data = Mid(data, 2, Len(data) - 2) 'strip off {,} 
    items = Split(data, ",") 
    For Each item In items 
     If item Like key & ":*" Then 
      item = Split(item, ":")(1) 
      item = Mid(item, 2, Len(item) - 2) 'strip off "," 
      JsonExtractor = item 
      Exit Function 
     End If 
    Next item 
    'raise error if not found: 
    JsonExtractor = CVErr(xlErrValue) 
End Function 

Und dann legen Sie die Formel =JsonExtractor($A2,B$1) in B2 und kopieren:

enter image description here

Verwandte Themen