Wie kann ich diese Formel zur Teilzeichenfolgenextraktion effizienter und leichter lesbar machen?

Wie kann ich diese Formel zur Teilzeichenfolgenextraktion effizienter und leichter lesbar machen?

Die Aufgabe meiner Formel besteht darin, das Valuefür das Item Number TypeElement im folgenden XML-ähnlichen Text zu extrahieren:

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

"Keine" ist die gewünschte Teilzeichenfolge. Machen Sie sich auf eine wirklich schreckliche Formel gefasst:

=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))

Diese Formel funktioniert. Ohne Variablen (also die Möglichkeit, den Startindex des Teilstrings zu speichern, der dreimal verwendet wird) weiß ich nicht, wie ich das, was ich brauche, sauberer und effizienter erreichen kann. Wissen Sie das?

Antwort1

Vorausgesetzt, Sie verwenden ein aktuelles Excel, können Sie möglicherweise FILTERXMLeine XPath-Abfrage ausführen.

Sie müssen den XML-ähnlichen Text wahrscheinlich in gültiges XML umwandeln, indem Sie ihn ebenfalls in ein Stammelement einschließen.

Etwas wie:

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

verwandte Informationen