Excel - Liste der Teilzeichenfolgen in großen Zeichenfolgen nachschlagen

Excel - Liste der Teilzeichenfolgen in großen Zeichenfolgen nachschlagen

Ich habe mit Folgendem zu kämpfen; könnte eine kleine Herausforderung sein.

Ich habe eine Excel-Datei, die aus einer XML-Anwendung exportiert wurde.

Blatt1enthält Zeilen mit Zeichenfolgen wie die unten. Jede ungerade Zeile enthält ungefähr 10 dieser Zeichenfolgen, aber das kann variieren. (Ich suche nach einer Lösung, um die geraden Zeilen auszufüllen; siehe unten.)

Blatt 2, Spalte A, enthält einen Bereich von Zeichenfolgen wie Measurement_1, Ref_Nound Maximum_Velocity, genanntEigenschaften.

Ich muss jedes dieser Attribute in jeder Zelle jeder ungeraden Zeile nachschlagen vonBlatt1und fügen Sie alleeinzigartigAttribut, das als Teilstring in diesen Strings erscheint, in einer neuen Zeile darunter, jeweils in einer eigenen Zelle.

Beachten Sie, dass jeder Wert in den generierten Zeilen eindeutig sein muss.

Gibt es eine Funktion, einen regulären Ausdruck oder ein VBA-Skript, mit dem das geht? Ich habe ausführlich in den Foren und anderswo gesucht, aber es ist mir nicht gelungen, es selbst zu tun.

Ich hoffe, das ist alles verständlich, aber wenn Unsinn ist, erkläre ich es Ihnen gern!


Zeile 1

Cell A1:
<ref attrid="Measurement_1" equalsign="=" includeattrname="false" resolveto="valueandunit" separator=""><ref attrid="Measurement_1" equalsign="=" includeattrname="false" resolveto="valueandunit" separator=" - "></ref></ref>

Cell B1:
"<ref attrid="Ref_No" equalsign="=" includeattrname="false" resolveto="valueandunit" separator=""><ref attrid="Unit" equalsign="=" includeattrname="false" resolveto="valueandunit" separator=" "><ref attrid="Vector" equalsign="=" includeattrname="false" resolveto="value" separator=" (Dia)"><ref attrid="Object_Diameter" equalsign="=" includeattrname="false" resolveto="unit" separator=""><ref attrid="Thread_Size" equalsign="=" includeattrname="false" resolveto="valueandunit" separator=","><ref attrid="Object_Length" equalsign="=" includeattrname="false" resolveto="value" separator=" "><ref attrid="Object_Length" equalsign="=" includeattrname="false" resolveto="value" separator=" of ">"

Cell C1:
CONCATENATE("This ", LOWER(VAL("Device_Type")),F(AND(EXACT(VAL("Max_Temperature_Range"),("")),EXACT(VAL("Min_Temperature_Range"),"")),".",CONCATENATE("appeared to operate safely from a minimum temperature of ", VAL("Min_Temperature_Range"),UNIT("Min_Temperature_Range")," to a maximum temperature of ", VAL("Max_Temperature_Range"),UNIT("Max_Temperature_Range"),".")))

Die gewünschte Ausgabe inReihe 2würde so aussehen:

Cell A2:Measurement_1
Cell B2:Ref_No
Cell C2:Object_Diameter
Cell D2:Object_Length
Cell E2:Device_Type
Cell F2:Max_Temperature_Range
Cell G2:Min_Temperature_Range

Antwort1

Ihre XML-Strings sehen seltsam aus – viele unvollständige Tags?

Ich würde jedenfalls mit der XML-Datei beginnen und sie mithilfe des Power Query-Add-Ins laden. Dieses verfügt über einen speziellen „Aus XML“-Handler und Sie können die Daten mithilfe der Power Query-Befehle ganz einfach im Laufe der Zeit anpassen.

Hier ist ein Beispiel, das ich mit einer bearbeiteten Version Ihres XML-Inhalts erstellt habe (ich habe ein Stammelement und schließende Tags hinzugefügt, um es zu einer gültigen XML-Datei zu machen).

Power Query - Beispiel aus einer XML-Datei

Die einzige Aktion, die zum Erreichen Ihres Ziels notwendig schien, war die Auswahl der Spalte „Attribut:attrid“ und die Auswahl von „Spalten entfernen“/„Andere Spalten entfernen“.

Sie können das Ergebnis im Hintergrund sehen – eine Excel-Tabelle. Wenn sich die XML-Datei ändert, klicken Sie einfach auf „Aktualisieren“, um die Power Query erneut auszuführen.

verwandte Informationen