
次のパターンの文字列を含む単一の列があります。
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