Если развернуть данные параметры то получим такой вид таблицы что все параметры развернутся вниз и таким образом названия позиций и другие параметры в исходной таблице будут дублироватся до тех пор пока не закончится вложенная табличка с параметрами и так далее по всех позициях.
Если развернуть данные параметры то получим такой вид таблицы что все параметры развернутся вниз и таким образом названия позиций и другие параметры в исходной таблице будут дублироватся до тех пор пока не закончится вложенная табличка с параметрами и так далее по всех позициях.
Понимаю что задача непростая. (по крайней мере для меня очень сложная) Как ее можно решить? Я в екселе чайник. Буду ОООЧЕНЬ БЛАГОДАРЕН ЗА ПОМОЩЬ.yuraok
Нужна Ваша помощь, уважаемые форумчане. Выше в кросс - теме уважаемые форумчане Михаил Л и PooHkrd помогли решить поставленную задачу с развертыванием вложенных этементов в горизонтальном порядке при помощи ниже приведенного кода:
[vba]
Код
let Источник = Xml.Tables(File.Contents("C:\Users\Administrator\Desktop\primer1.xml")), #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Attribute:date", type datetime}}), shop = #"Измененный тип"{0}[shop], #"Измененный тип1" = Table.TransformColumnTypes(shop,{{"name", type text}, {"company", type text}, {"url", type text}}), offers = #"Измененный тип1"{0}[offers], offer = offers{0}[offer], #"Измененный тип2" = Table.TransformColumnTypes(offer,{{"url", type text}, {"currencyId", type text}, {"price", Int64.Type}, {"categoryId", Int64.Type}, {"picture", type text}, {"name", type text}, {"description", type text}, {"stock_quantity", Int64.Type}, {"Attribute:available", type logical}, {"Attribute:id", type text}, {"Attribute:group_id", Int64.Type}}), #"Развернутый элемент param" = Table.ExpandTableColumn(#"Измененный тип2", "param", {"Element:Text", "Attribute:name"}, {"param.Element:Text", "param.Attribute:name"}),
#"Pivoted Column" = Table.Pivot( #"Развернутый элемент param", List.Distinct(#"Развернутый элемент param"[#"param.Attribute:name"]), "param.Attribute:name", "param.Element:Text", (t)=>Text.Combine(t,", ") ) in #"Pivoted Column"
[/vba] Но стала задача развернуть в горизонтальном порядке два параметра как показано на скриншоте:
Так как код применяется для [vba]
Код
#"Развернутый элемент param",
[/vba] То раскрыть последовательно нельзя так как пишет что нельзя применить для строк с вложенными элементами.
Нужно както сначала развернуть обе вложенные параметры а потом применить код... Я попробовал чтото сочинить: [vba]
Код
let Источник = Xml.Tables(File.Contents("C:\Users\Administrator\Desktop\Primer2_xml.xml")), #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Attribute:date", type datetime}}), shop = #"Измененный тип"{0}[shop], #"Измененный тип1" = Table.TransformColumnTypes(shop,{{"name", type text}, {"company", type text}, {"url", type text}}), offer = #"Измененный тип1"{0}[offer], #"Измененный тип2" = Table.TransformColumnTypes(offer,{{"url", type text}, {"price", Int64.Type}, {"categoryId", Int64.Type}, {"picture", type text}, {"name", type text}, {"description", type text}, {"stock_quantity", Int64.Type}, {"Attribute:available", type logical}, {"Attribute:id", Int64.Type}}),
#"Развернутый элемент param1" = Table.ExpandTableColumn(#"Развернутый элемент param", "param1", {"Element:Text", "Attribute:name"}, {"param1.Element:Text.1", "param1.Attribute:name.1"}),
#"Pivoted Column" = Table.Pivot( #"Развернутый элемент param", List.Distinct(#"Развернутый элемент param"[#"param.Attribute:name"]), "param.Attribute:name", "param.Element:Text",
#"Развернутый элемент param1", List.Distinct(#"Развернутый элемент param1"[#"param1.Attribute:name.1"]), "param1.Attribute:name.1", "param1.Element:Text.1",
(t)=>Text.Combine(t,", ") ) in #"Pivoted Column"
[/vba]
Но не работает и пишет ошибку:
Цитата
Expression.Error: Аргументы 9 были переданы функции, которая ожидает значения между 4 и 5.Сведения: Pattern= Arguments=List
ПОМОЖЕТ КТО НАПИСАТЬ КОД ДЛЯ РАЗВЕРТЫВАНИЯ 2-Х ВЛОЖЕННЫХ ТАБЛИЦ ПО ГОРИЗОНТАЛИ КАК Я ОПИСЫВАЛ В НАЧАЛЕ ТЕМЫ?? БУДУ ОЧЕНЬ ПРИЗНАТЕЛЕН ЗА ПОМОЩЬ..
Прикрепляю исходный файл который нужно изменить.
Нужна Ваша помощь, уважаемые форумчане. Выше в кросс - теме уважаемые форумчане Михаил Л и PooHkrd помогли решить поставленную задачу с развертыванием вложенных этементов в горизонтальном порядке при помощи ниже приведенного кода:
[vba]
Код
let Источник = Xml.Tables(File.Contents("C:\Users\Administrator\Desktop\primer1.xml")), #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Attribute:date", type datetime}}), shop = #"Измененный тип"{0}[shop], #"Измененный тип1" = Table.TransformColumnTypes(shop,{{"name", type text}, {"company", type text}, {"url", type text}}), offers = #"Измененный тип1"{0}[offers], offer = offers{0}[offer], #"Измененный тип2" = Table.TransformColumnTypes(offer,{{"url", type text}, {"currencyId", type text}, {"price", Int64.Type}, {"categoryId", Int64.Type}, {"picture", type text}, {"name", type text}, {"description", type text}, {"stock_quantity", Int64.Type}, {"Attribute:available", type logical}, {"Attribute:id", type text}, {"Attribute:group_id", Int64.Type}}), #"Развернутый элемент param" = Table.ExpandTableColumn(#"Измененный тип2", "param", {"Element:Text", "Attribute:name"}, {"param.Element:Text", "param.Attribute:name"}),
#"Pivoted Column" = Table.Pivot( #"Развернутый элемент param", List.Distinct(#"Развернутый элемент param"[#"param.Attribute:name"]), "param.Attribute:name", "param.Element:Text", (t)=>Text.Combine(t,", ") ) in #"Pivoted Column"
[/vba] Но стала задача развернуть в горизонтальном порядке два параметра как показано на скриншоте:
Так как код применяется для [vba]
Код
#"Развернутый элемент param",
[/vba] То раскрыть последовательно нельзя так как пишет что нельзя применить для строк с вложенными элементами.
Нужно както сначала развернуть обе вложенные параметры а потом применить код... Я попробовал чтото сочинить: [vba]
Код
let Источник = Xml.Tables(File.Contents("C:\Users\Administrator\Desktop\Primer2_xml.xml")), #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Attribute:date", type datetime}}), shop = #"Измененный тип"{0}[shop], #"Измененный тип1" = Table.TransformColumnTypes(shop,{{"name", type text}, {"company", type text}, {"url", type text}}), offer = #"Измененный тип1"{0}[offer], #"Измененный тип2" = Table.TransformColumnTypes(offer,{{"url", type text}, {"price", Int64.Type}, {"categoryId", Int64.Type}, {"picture", type text}, {"name", type text}, {"description", type text}, {"stock_quantity", Int64.Type}, {"Attribute:available", type logical}, {"Attribute:id", Int64.Type}}),
#"Развернутый элемент param1" = Table.ExpandTableColumn(#"Развернутый элемент param", "param1", {"Element:Text", "Attribute:name"}, {"param1.Element:Text.1", "param1.Attribute:name.1"}),
#"Pivoted Column" = Table.Pivot( #"Развернутый элемент param", List.Distinct(#"Развернутый элемент param"[#"param.Attribute:name"]), "param.Attribute:name", "param.Element:Text",
#"Развернутый элемент param1", List.Distinct(#"Развернутый элемент param1"[#"param1.Attribute:name.1"]), "param1.Attribute:name.1", "param1.Element:Text.1",
(t)=>Text.Combine(t,", ") ) in #"Pivoted Column"
[/vba]
Но не работает и пишет ошибку:
Цитата
Expression.Error: Аргументы 9 были переданы функции, которая ожидает значения между 4 и 5.Сведения: Pattern= Arguments=List
ПОМОЖЕТ КТО НАПИСАТЬ КОД ДЛЯ РАЗВЕРТЫВАНИЯ 2-Х ВЛОЖЕННЫХ ТАБЛИЦ ПО ГОРИЗОНТАЛИ КАК Я ОПИСЫВАЛ В НАЧАЛЕ ТЕМЫ?? БУДУ ОЧЕНЬ ПРИЗНАТЕЛЕН ЗА ПОМОЩЬ..
Прикрепляю исходный файл который нужно изменить.yuraok