パターン文字列から値を 3 つの列に抽出しますか?

パターン文字列から値を 3 つの列に抽出しますか?

次のパターンの文字列を含む単一の列があります。

blablabla?bla&bla&tv_a=value1&tv_b=value2&tv_3=value3

文字列からデータをtv_[i]3 つの別々の列に抽出します。

value1 value2 value3

例:

次の 2 つのレコードの場合:

long-url-here?a=0&b=4&tv_a=hello&tv_b=there&tv_3=now

other-url?z=4&v=2&tv_a=this&tv_b=is%20an2&tv_3=example

列は次のようになります:

column 1 | column 2 | column 3
-------------------------------
hello    | there    | now
this     | is an    | example

答え1

これを最初の行に配置し、A1 を最初のセルに変更します。

=MID(TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,"2",""),"%0"," "),"&tv_",REPT(" ",999)),999*COLUMN(A:A),999)),FIND("=",TRIM(MID(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE($A1,"2",""),"%0"," "),"&tv_",REPT(" ",999)),999*COLUMN(A:A),999)))+1,999)

次に、さらに 2 つの列をドラッグして、必要な長さまで下にドラッグします。

![ここに画像の説明を入力してください

答え2

あなたの例を使用すると:

長いURLはこちら?a=0&b=4&tv_a=hello&tv_b=there&tv_3=now

私は物事を「断片的に」アプローチします。つまり、問題を小さな部分に分割し、それらを組み立てます。これは「分割統治」アプローチとも呼ばれます。これは次のようになります。

URL には、次の順序で、関心のある 3 つの変数があることがわかりました。
     テレビテレビテレビ3しかし、それはそうしましょう:テレビテレビビーテレビ_300000

URLが与えられたら、tv_aを見つけましょう:
     =探す("tv_a", URL, 1=23=位置- 文字列の最初の文字の位置から始まる URL 内の文字列 tv_a を検索します。

変数 tv_a の長さはどれくらいですか?
      =レン(「テレビ」=4=長さ

ゲヴェンのメールアドレスそしてその位置最初の変数そしてその長さ変数の「=」記号の後の単語を見つけましょう:
      =ミッド(URL、変数+長さ+1、長さ+1=こんにちは

数式全体を 1 つの数式にまとめることができます。これは Excel では簡単な作業です。この例の命名規則は次のとおりです。URL=A3、初め=B2、2番=C2、三番目=D2。これは次のようになります: ここに画像の説明を入力してください 3つの変数すべて: 上記のレイアウトの画像を参照
     1 番目 = MID(url,B3+LEN(first)+1,C3-B3-LEN(first)-2) = hello
     2 番目 = MID(url,C3+LEN(second)+1,D3-C3-LEN(second)-2) = そこ
     3 番目 = RIGHT(url,LEN(url)-FIND(third,url,D3)-LEN(third)) = 現在

簡単なタスクの例: ヘルパーセルの使用

B3=FIND(first,url,1)、C3=LEN(first): 推奨
1番目=MID(url,B3+LEN(最初)+1,C3-B3-LEN(最初)-2)=hello
置換により、ヘルパーセルの代わりに 1 行を使用できます。
1 番目 = MID(url,FIND(最初、url、1)+LEN(最初)+1、FIND(2 番目、url、1)-FIND(最初、url、1)-LEN(最初)-2)=hello

このような問題を解決するには、後で他の同様の領域で使用するためにプロジェクトに戻るための部分的な解決方法を使用する方がよいことがわかります。この方法では、問題の解決が簡単なので、簡単に解決できます。

*命名規則:https://support.office.com/en-us/article/数式内の名前の定義と使用-4d0f13ac-53b7-422e-afd2-abd7ff379c64

関連情報