sboy
Дата: Вторник, 19.03.2019, 10:36 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация:
724
±
Замечаний:
0% ±
Excel 2010
Добрый день. Вариант на Power Query (вернее два варианта, т.к. мало исходных данных для проверки) Второй, наверно будет правильней обрабатывать
[vba]
Код
let Источник = Csv.Document(File.Contents("D:\Мои документы\Загрузки\8661391.txt"),[Delimiter=":", Columns=3, Encoding=1251, QuoteStyle=QuoteStyle.None]), #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}}), #"Объединенные столбцы" = Table.CombineColumns(Table.TransformColumnTypes(#"Измененный тип", {{"Column3", type text}}, "ru-RU"),{"Column1","Column2", "Column3"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Сведено"), #"Заполнено вверх" = Table.FillUp(#"Объединенные столбцы",{"Сведено"}), #"Добавлен индекс" = Table.AddIndexColumn(#"Заполнено вверх", "Индекс", 1, 1), #"Добавлен пользовательский объект" = Table.AddColumn(#"Добавлен индекс", "Пользовательская", each Number.RoundUp([Индекс]/7)), #"Сгруппированные строки" = Table.Group(#"Добавлен пользовательский объект", {"Пользовательская"}, {{"Количество", each Table.Transpose(Table.SelectColumns(_,{"Сведено"})), type table}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Сгруппированные строки",{"Количество"}), #"Развернутый элемент Количество" = Table.ExpandTableColumn(#"Другие удаленные столбцы", "Количество", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7"}), #"Разделить столбец по разделителю" = Table.SplitColumn(#"Развернутый элемент Количество", "Column7", Splitter.SplitTextByDelimiter(" / ", QuoteStyle.Csv), {"Column7.1", "Column7.2"}), #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по разделителю",{{"Column7.1", type text}, {"Column7.2", type text}}), #"Замененное значение" = Table.ReplaceValue(#"Измененный тип1","Пр ","",Replacer.ReplaceText,{"Column7.1"}), #"Замененное значение1" = Table.ReplaceValue(#"Замененное значение","Пк","",Replacer.ReplaceText,{"Column7.2"}) in #"Замененное значение1"
[/vba]
Добрый день. Вариант на Power Query (вернее два варианта, т.к. мало исходных данных для проверки) Второй, наверно будет правильней обрабатывать
[vba]
Код
let Источник = Csv.Document(File.Contents("D:\Мои документы\Загрузки\8661391.txt"),[Delimiter=":", Columns=3, Encoding=1251, QuoteStyle=QuoteStyle.None]), #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}}), #"Объединенные столбцы" = Table.CombineColumns(Table.TransformColumnTypes(#"Измененный тип", {{"Column3", type text}}, "ru-RU"),{"Column1","Column2", "Column3"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Сведено"), #"Заполнено вверх" = Table.FillUp(#"Объединенные столбцы",{"Сведено"}), #"Добавлен индекс" = Table.AddIndexColumn(#"Заполнено вверх", "Индекс", 1, 1), #"Добавлен пользовательский объект" = Table.AddColumn(#"Добавлен индекс", "Пользовательская", each Number.RoundUp([Индекс]/7)), #"Сгруппированные строки" = Table.Group(#"Добавлен пользовательский объект", {"Пользовательская"}, {{"Количество", each Table.Transpose(Table.SelectColumns(_,{"Сведено"})), type table}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Сгруппированные строки",{"Количество"}), #"Развернутый элемент Количество" = Table.ExpandTableColumn(#"Другие удаленные столбцы", "Количество", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7"}), #"Разделить столбец по разделителю" = Table.SplitColumn(#"Развернутый элемент Количество", "Column7", Splitter.SplitTextByDelimiter(" / ", QuoteStyle.Csv), {"Column7.1", "Column7.2"}), #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по разделителю",{{"Column7.1", type text}, {"Column7.2", type text}}), #"Замененное значение" = Table.ReplaceValue(#"Измененный тип1","Пр ","",Replacer.ReplaceText,{"Column7.1"}), #"Замененное значение1" = Table.ReplaceValue(#"Замененное значение","Пк","",Replacer.ReplaceText,{"Column7.2"}) in #"Замененное значение1"
[/vba]
sboy
Яндекс: 410016850021169
Сообщение отредактировал sboy - Вторник, 19.03.2019, 10:37
Ответить
Сообщение Добрый день. Вариант на Power Query (вернее два варианта, т.к. мало исходных данных для проверки) Второй, наверно будет правильней обрабатывать
[vba]
Код
let Источник = Csv.Document(File.Contents("D:\Мои документы\Загрузки\8661391.txt"),[Delimiter=":", Columns=3, Encoding=1251, QuoteStyle=QuoteStyle.None]), #"Измененный тип" = Table.TransformColumnTypes(Источник,{{"Column1", type text}, {"Column2", type text}, {"Column3", Int64.Type}}), #"Объединенные столбцы" = Table.CombineColumns(Table.TransformColumnTypes(#"Измененный тип", {{"Column3", type text}}, "ru-RU"),{"Column1","Column2", "Column3"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Сведено"), #"Заполнено вверх" = Table.FillUp(#"Объединенные столбцы",{"Сведено"}), #"Добавлен индекс" = Table.AddIndexColumn(#"Заполнено вверх", "Индекс", 1, 1), #"Добавлен пользовательский объект" = Table.AddColumn(#"Добавлен индекс", "Пользовательская", each Number.RoundUp([Индекс]/7)), #"Сгруппированные строки" = Table.Group(#"Добавлен пользовательский объект", {"Пользовательская"}, {{"Количество", each Table.Transpose(Table.SelectColumns(_,{"Сведено"})), type table}}), #"Другие удаленные столбцы" = Table.SelectColumns(#"Сгруппированные строки",{"Количество"}), #"Развернутый элемент Количество" = Table.ExpandTableColumn(#"Другие удаленные столбцы", "Количество", {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7"}, {"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7"}), #"Разделить столбец по разделителю" = Table.SplitColumn(#"Развернутый элемент Количество", "Column7", Splitter.SplitTextByDelimiter(" / ", QuoteStyle.Csv), {"Column7.1", "Column7.2"}), #"Измененный тип1" = Table.TransformColumnTypes(#"Разделить столбец по разделителю",{{"Column7.1", type text}, {"Column7.2", type text}}), #"Замененное значение" = Table.ReplaceValue(#"Измененный тип1","Пр ","",Replacer.ReplaceText,{"Column7.1"}), #"Замененное значение1" = Table.ReplaceValue(#"Замененное значение","Пк","",Replacer.ReplaceText,{"Column7.2"}) in #"Замененное значение1"
[/vba]
Автор - sboy Дата добавления - 19.03.2019 в 10:36