2016-10-10 2 views
0

これを実行しようとしていますが、成功しませんでした。 私はJsonファイルから翻訳されたデータを抽出し、異なる列で翻訳された異なるものを抽出しようとしています。重要なのは、データが常に同じシーケンスを持つとは限らないことです。Excel - 同じテキストの条件に基づいてテキスト内のテキストを抽出する方法

JSONは次のようになります。

{ "エン": "生活"、 "NL-BE": "リーベン"、 "脱DE": "リーベン"、 "FR-BE":」 la vie "}

私が達成したいと思っているExcelの例を参照してください。 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 

ありがとうございます。

+0

回答のいずれかがあなたのために働くましたか?このサイトはフィードバックで繁栄しています。問題があれば、答えのチェックマークをクリックして正しいものとしてマークしてください。彼らがうまくいかない場合は、何がうまくいかなかったのかを教えてください。 –

答えて

1

は、この式を使用します。

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

はオーバーとダウンB2のコピーでそれを入れてください。 @ScottCranerの優れた答えに加えて

enter image description here

1

、あなたはVBAでのUDFを書くことができます。標準のコードモジュールプットでは:その後、

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 

そしてB2式=JsonExtractor($A2,B$1)を入れて、コピーします。

enter image description here

関連する問題