
我有一個列,其中包含以下模式的字串:
blablabla?bla&bla&tv_a=value1&tv_b=value2&tv_3=value3
我想將字串中的資料提取tv_[i]
到 3 個單獨的列中:
value1
value2
value3
例子:
對於以下兩筆記錄:
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
答案2
透過使用你的例子:
長網址在這裡?
我會「分段」處理問題,或將問題分解成更小的部分,然後將它們組裝起來。這也稱為「分而治之」的方法。它看起來是這樣的:
您發現 URL 中有 3 個您感興趣的變量,依序為:
電視_a,電視_b,電視_3.但我們就這樣吧:電視_a,電視蜜蜂,電視_300000
給定 URL,讓我們找到 tv_a:
=尋找(“tv_a”,網址,1)=23=位置- 從字串中第一個字元的位置開始,在 URL 中尋找字串 tv_a。
變數 tv_a 的長度是多少?
=萊恩(“電視_a”)=4=長度
吉文網址和位置第一個的多變的和長度變數的,讓我們找出「=」符號後面的單字:
=中(URL,變數+長度+1,長度+1)=你好
您可以將整個公式串成一個公式。這在 Excel 中是一項微不足道的任務。本例中的命名約定是:網址=A3,第一的=B2,第二=C2,第三=D2。看起來是這樣的:
所有三個變數:wrt 佈局上方的圖片
1st=MID(url,B3+LEN(first)+1,C3-B3-LEN(first)-2)=hello
2nd=MID(url,C3+LEN(second)+1,D3 - C3-LEN(第二個)-2)=那裡
3rd=RIGHT(url,LEN(url)-FIND(第三個,url,D3)-LEN(第三個))=現在
一個簡單的任務範例:使用輔助細胞
設 B3=FIND(first,url,1), C3=LEN(first):首選 1st=MID(url,B3+LEN(第一個)+1,C3-B3-LEN(第一個)-2)=你好
透過替換,您可以使用單行而不是輔助單元: 1st=MID(url,FIND(第一個,url,1)+LEN(第一個)+1,FIND(第二個,url,1)-FIND(第一個,url,1)-LEN(第一個)-2)=你好
您會發現,解決此類問題最好使用分段求解方法,以便返回專案以供以後在其他類似領域使用;這樣你就可以更容易看到問題的解決,因為它是直接的。