從模式字串中提取值到 3 列?

從模式字串中提取值到 3 列?

我有一個列,其中包含以下模式的字串:

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

將其放在第一行並將 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

透過使用你的例子:

長網址在這裡?

我會「分段」處理問題,或將問題分解成更小的部分,然後將它們組裝起來。這也稱為「分而治之」的方法。它看起來是這樣的:

您發現 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)=你好

您會發現,解決此類問題最好使用分段求解方法,以便返回專案以供以後在其他類似領域使用;這樣你就可以更容易看到問題的解決,因為它是直接的。

*命名約定:https://support.office.com/en-us/article/Define-and-use-names-in-formulas-4d0f13ac-53b7-422e-afd2-abd7ff379c64

相關內容