如何讓這個子字串提取公式更有效率、更易於閱讀?

如何讓這個子字串提取公式更有效率、更易於閱讀?

我的公式的任務是提取以下類似 XML 的文字中的元素ValueItem Number Type

<CustomField>
    <Name>Level of Concern</Name>
    <Value>N/A</Value>
</CustomField>
<CustomField>
    <Name>Item Number Type</Name>
    <Value>None</Value>
</CustomField>

“None”是所需的子字串。做好準備迎接一個真正可怕的公式:

=MID(D8, SEARCH("Item Number Type</Name><Value>", D8) + 30, 
    SEARCH("<", D8, SEARCH("Item Number Type</Name><Value>", D8) + 30)-
    (SEARCH("Item Number Type</Name><Value>", D8) + 30))

這個公式有效。如果沒有變數(即能夠儲存使用了 3 次的子字串起始索引),我不知道如何以更乾淨、更有效的方式完成我需要的操作,是嗎?

答案1

假設您使用的是最新的 Excel,您也許可以用來FILTERXML執行 Xpath 查詢。

您可能還需要將類似 XML 的文字包裝在根元素中,從而將其轉換為有效的 XML。

就像是:

=FILTERXML("<root>" & D8 & "</root>", 
           "//CustomField[Name='Item Number Type']/Value/text()")

相關內容