Страницы: 1
RSS
Как переобразовать вертикальный масив данных в горизонтальный?
 
Помогите переобразовать такой масив данных в то что на скрине?
 
Распечатываете картинку и вносите данные вручную. А что еще посоветовать при отсутствии нормального примера? Или Вы предлагаете сначала перенести данные из картинки в Excel?
 
vikttur, извините, виноват. Вот массив.
 
Можно всё сделать макросом - но ведь его нужно кому-то сперва написать.
А можно сперва создать столбец без повторов из А, затем к каждому значению подтянуть что нужно с помощью например UDF VLOOKUP2()/ВПР2() - такая часто встречается на форумах, наверняка и тут где-то есть код.
 
=ЕСЛИ($D1;ЕСЛИОШИБКА(ИНДЕКС($B$1:$B1;СТРОКА()-СЧЁТЕСЛИ($A$1:$A1;$A1)+СТОЛБЕЦ(A1)););)
Отфильтровать строки со значениями >0 в столбце D, заменить формулы на значения, НАЙТИ/ЗАМЕНИТЬ - удалить нулевые значения.

Сравните размер файла с формулами и размер Вашего примера...
 
Как вариант решение макросом со старого форума от Kl. Далее применить текст по столбцам.  
 
vikttur, круто. Очень круто! Спсибо.
 
А если применять текст по столбцам - то можно к уникальным (ну или прямо так как есть) подтянуть всё в одну ячейку с помощью VLOOKUPCOUPLE() из копилки, затем этот результат и разбить.
 
Ещё вариант с формулами
для уникальных значений первого столбца
Код
=IFERROR(AGGREGATE(15;6;A$1:A$3500/(A$1:A$3500<>0)/(COUNTIF(D$1:D1;A$1:A$3500)=0);1);"")
для транспонирования второго столбца
Код
=IFERROR(INDEX($B$1:$B$5935;AGGREGATE(15;6;ROW($1:$6635)/($A$1:$A$5935=$D2)/($B$1:$B$5935<>"");COLUMNS($E:E)));"")
 
еще б вариант на Power Query
 
Пожалуйста  :)
Код
let 
    Source = Excel.CurrentWorkbook(){[Name="Таблица1"]}[Content],
    types = Table.TransformColumnTypes(Source,{"Столбец2", type text}),
    group = Table.Group(types, {"Столбец1"}, {{"", each Text.Combine(_[Столбец2], "|")}}),
    split = Table.SplitColumn(group, "", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {".1", ".2", ".3", ".4", ".5", ".6", ".7", ".8", ".9", ".10"}),
    types1 = Table.TransformColumnTypes(split, List.Transform(Table.ColumnNames(split), each {_, Int64.Type}))
in
    types1
Страницы: 1
Наверх