let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Split Column by Delimiter" = Table.SplitColumn(Source,"длина х ширина х глубина",Splitter.SplitTextByDelimiter("x", QuoteStyle.Csv),{"длина х ширина х глубина.1", "длина х ширина х глубина.2", "длина х ширина х глубина.3"}), #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"длина х ширина х глубина.1", type number}, {"длина х ширина х глубина.2", type number}, {"длина х ширина х глубина.3", type number}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each [длина х ширина х глубина.1]*[длина х ширина х глубина.2]*[длина х ширина х глубина.3]), #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}), #"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns",{{"Custom", "объём"}}) in #"Renamed Columns"
[/vba]
Power Query
[vba]
Код
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], #"Split Column by Delimiter" = Table.SplitColumn(Source,"длина х ширина х глубина",Splitter.SplitTextByDelimiter("x", QuoteStyle.Csv),{"длина х ширина х глубина.1", "длина х ширина х глубина.2", "длина х ширина х глубина.3"}), #"Changed Type" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"длина х ширина х глубина.1", type number}, {"длина х ширина х глубина.2", type number}, {"длина х ширина х глубина.3", type number}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each [длина х ширина х глубина.1]*[длина х ширина х глубина.2]*[длина х ширина х глубина.3]), #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}), #"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns",{{"Custom", "объём"}}) in #"Renamed Columns"
let a = Excel.CurrentWorkbook(){[ Name = "Table1" ]}[Content], b = Table.TransformColumns(a, List.Transform( Table.ColumnNames(a), (n)=> {n, ( y) => Expression.Evaluate(Text.Replace(Text.From ( y ),"x","*"))})) in b
[/vba]
Еще вариант PQ: [vba]
Код
let a = Excel.CurrentWorkbook(){[ Name = "Table1" ]}[Content], b = Table.TransformColumns(a, List.Transform( Table.ColumnNames(a), (n)=> {n, ( y) => Expression.Evaluate(Text.Replace(Text.From ( y ),"x","*"))})) in b
let from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], f=(x)=>List.Product(List.Transform(Text.Split(x,"x"),Number.From)), to = Table.TransformColumns(from,{},f) in to
[/vba] приём применения ко всем столбцам описывал в танке
let from = Excel.CurrentWorkbook(){[Name="Table1"]}[Content], f=(x)=>List.Product(List.Transform(Text.Split(x,"x"),Number.From)), to = Table.TransformColumns(from,{},f) in to
[/vba] приём применения ко всем столбцам описывал в танке