我的公式的任务是提取以下类似 XML 的文本中的元素Value
:Item 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()")