簡體   English   中英

使用 Excel 公式查找特定字符並返回單元格中的下一個值

[英]Find specific characters and return the next value in the cell using Excel Formula

我不確定從哪里開始使用公式,因為我對所有事情都感到困惑。 我有一個包含“PON”或“PON:”或“PON =”的單元格,然后是實際的 PON(示例:PON 123467)我想通過公式在單元格中返回 123467。

Examples                                         What I want returned
I have PON 123467 for shoes                         123467
I have PON: 234567-AB for food                      234567-AB
I have PON - 569874-Weird for accessories           569874-Weird
I have PON = DOG-564-987 for dog food               DOG-564-987

我目前正在使用 Excel 365

在這種情況下, Filterxml()將為您提供最佳伴侶。 嘗試-

=FILTERXML("<t><s>"&SUBSTITUTE(FILTERXML("<t><s>"&SUBSTITUTE(A1," for","</s><s>")&"</s></t>","//s[1]")," ","</s><s>")&"</s></t>","//s[last()]")

在此處輸入圖像描述

你可以試試這個公式。

=TRIM(LEFT(MID(A2,FIND(@{1,2,3,4,5,6,7,8,9},A2),100),FIND(" ",MID(A2,FIND(@{1,2,3,4,5,6,7,8,9},A2),100))))

它提取第一個數字和該數字后面的第一個空格之間的文本。 該摘錄的大小限制為 100 個字符。

使用FILTERXML ,並在PON之后測試 substring ,您可以嘗試:

=FILTERXML("<t><s>"&SUBSTITUTE(TRIM(A1)," ","</s><s>") & "</s></t>","//s[contains(.,'PON')]/following-sibling::*[string-length(.)>2][1]")

請注意,FILTERXML 解決方案將導致僅是數字但帶有前導零的 PON 丟棄前導零。 不幸的是,xPath 實現中的 function 不包括string() function

如果刪除前導零可能有問題,您可以向節點添加一個字符,強制將數字視為字符串。 在下面的修改公式中,我使用了 unicode 零寬度空間,但還有其他的你可以使用。 請注意,這將被視為string=length function 的字符,因此請務必保持>2參數

=FILTERXML("<t><s>"&SUBSTITUTE(TRIM(A1)," ","</s><s>"&UNICHAR(8203)) & "</s></t>","//s[contains(.,'PON')]/following-sibling::*[string-length(.)>2][1]")

由於數據的可變性,有時 PON 和所需的提取物 xpath 之間會有多余的空格分隔子字符串:

  • 定位 substring PON
  • 返回字符串長度超過兩個的所有后續兄弟(如有必要,請調整
    • 返回滿足該條件的第一個兄弟。

在此處輸入圖像描述

暫無
暫無

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

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