Я боролся со следующим; может быть немного сложным.
У меня есть файл Excel, который был экспортирован из приложения XML.
Лист 1 содержит ряды строк, подобные приведенным ниже. Каждая строка с нечетным номером содержит около 10 таких строк, но это может варьироваться. (Я ищу решение для заполнения строк с четными номерами; см. Ниже.)
Лист 2, столбец A, содержит диапазон строк, таких как Measurement_1
, Ref_No
и Maximum_Velocity
, которые называются атрибутами.
Мне нужно найти каждый из этих атрибутов в каждой ячейке каждой строки с нечетным номером на листе 1 и вставить каждый уникальный атрибут, который появляется в виде подстроки в этих строках, в новую строку ниже, каждый в своей отдельной ячейке.
Обратите внимание, что каждое значение в сгенерированных строках должно быть уникальным.
Есть ли какая-нибудь функция, регулярное выражение или сценарий VBA, которые могут это сделать? Я много искал на форумах и в других местах и не смог сделать это сам.
Я надеюсь, что все это имеет смысл, но я с удовольствием объясню все что угодно!
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"),".")))
Желаемый результат в строке 2 будет выглядеть так:
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