簡體   English   中英

excel中基於數組拆分字符串

[英]Split String Based on Array in excel

我有 excel 個像下面這樣的單元格

WYONG RD BRYANT DR TUGGERAH 2259 CENTRAL COAST (LGA) NSW

我想在一列中抓取任何類型的道路、街道、車道、高速公路等,然后在另一列中抓取相交的道路。 所以對於上面的單元格,我想要的 output 將是:

第 1 欄:WYONG 路

專欄 2:科比 DR

下面的代碼將兩條道路合並為一列,但我想將它們分開,但在操作上遇到了一些困難。

=INDEX(IFERROR(LEFT(H2,SEARCH({" DR"," HWY"," ST"," CRK"," BND"," LN"," AV"," AVE"," MTWY"," RD"," CT"},H2)+3),""),MATCH(MAX(LEN(IFERROR(LEFT(H2,SEARCH({" DR"," HWY"," ST"," CRK"," BND"," LN"," AV"," AVE"," MTWY"," RD"," CT"},H2)+2),""))),LEN(IFERROR(LEFT(H2,SEARCH({" DR"," HWY"," ST"," CRK"," BND"," LN"," AV"," AVE"," MTWY"," RD"," CT"},H2)+2),"")),0)))

使用 MS365,您可以使用:

在此處輸入圖像描述

A3中的公式:

=LET(X,FILTERXML("<t><s>"&SUBSTITUTE(A1," ","</s><s>")&"</s></t>","//s"),TRIM(FILTERXML("<t><s>"&TEXTJOIN(" ",,IF(MMULT(--(X={"DR";"HWY";"ST";"CRK";"BND";"LN";"AV";"AVE";"MTWY";"RD";"CT"}),SEQUENCE(11,,,0)),X&"</s><s>",X))&"</s></t>","//s")))

我試圖檢查你的公式,但不幸的是,它給了我一個錯誤。 因此,我花了一些時間想出了以下解決方案:

比如說,輸入字符串在A2單元格中,輸出在B2C2單元格中。 因此,公式可以如下:

對於B2

=LEFT(A2,
MIN(IFERROR(SEARCH(" DR",  A2)+2,1000000),
    IFERROR(SEARCH(" HWY", A2)+3,1000000),
    IFERROR(SEARCH(" ST",  A2)+2,1000000),
    IFERROR(SEARCH(" CRK", A2)+3,1000000),
    IFERROR(SEARCH(" BND", A2)+3,1000000),
    IFERROR(SEARCH(" LN",  A2)+2,1000000),
    IFERROR(SEARCH(" AV",  A2)+2,1000000),
    IFERROR(SEARCH(" AVE", A2)+3,1000000),
    IFERROR(SEARCH(" MTWY",A2)+4,1000000),
    IFERROR(SEARCH(" RD",  A2)+2,1000000),
    IFERROR(SEARCH(" CT",  A2)+2,1000000)))

對於C2

=LEFT(SUBSTITUTE(A2,B2&" ",""),
MIN(IFERROR(SEARCH(" DR",  SUBSTITUTE(A2,B2&" ",""))+2,1000000),
    IFERROR(SEARCH(" HWY", SUBSTITUTE(A2,B2&" ",""))+3,1000000),
    IFERROR(SEARCH(" ST",  SUBSTITUTE(A2,B2&" ",""))+2,1000000),
    IFERROR(SEARCH(" CRK", SUBSTITUTE(A2,B2&" ",""))+3,1000000),
    IFERROR(SEARCH(" BND", SUBSTITUTE(A2,B2&" ",""))+3,1000000),
    IFERROR(SEARCH(" LN",  SUBSTITUTE(A2,B2&" ",""))+2,1000000),
    IFERROR(SEARCH(" AV",  SUBSTITUTE(A2,B2&" ",""))+2,1000000),
    IFERROR(SEARCH(" AVE", SUBSTITUTE(A2,B2&" ",""))+3,1000000),
    IFERROR(SEARCH(" MTWY",SUBSTITUTE(A2,B2&" ",""))+4,1000000),
    IFERROR(SEARCH(" RD",  SUBSTITUTE(A2,B2&" ",""))+2,1000000),
    IFERROR(SEARCH(" CT",  SUBSTITUTE(A2,B2&" ",""))+2,1000000)))

請注意,第二個公式依賴於第一個公式 output。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM