Страницы: 1
RSS
Переместить ячейки из строки в нужном порядке в столбец
 
Здравствуйте, уважаемые специалисты, подскажите пожалуйста формулу или макрос, как мне реализовать подобную задачу?
Задачу описал в файле, на вкладке ВВОД изначальные данные которые я беру, какой макрос или формулу мне необходимо применить, чтобы результат был как на вкладке ВЫВОД. А именно: чтобы ячейка А1 оставалась на месте, ячейки В1, С1 .... траспонировали из строки в колонку в столбец В и напротив каждого в столбце А был написано значение А1 (из исходных данных), и проделать тоже самое с остальными строками. Благодарю.
Изменено: mishura08 - 27.11.2018 18:01:38
 
Смотрите приложение с формулами
для столбца А
Код
=IFERROR(INDEX(ВВОД!A$1:A$500;AGGREGATE(15;6;ROW(B$1:B$500)/(ВВОД!B$1:Q$500<>"");ROWS($1:1)));"")
для столбца В
Код
=IFERROR(INDEX(ВВОД!$B$1:$Q$500;MATCH(A1;ВВОД!A$1:A$500;0);AGGREGATE(15;6;COLUMN($A:$Q)/(ВВОД!$A$1:$A$500=A1)/(ВВОД!$B$1:$Q$500<>"");COUNTIF(A$1:A1;A1)));"")
 
Цитата
jakim написал:
Смотрите приложение с формулами
в вашем файле всё работает, но почему-то даже там протягиваю формулы вниз, а остальные значения не подтягиваются.
а в моём файле формулы не работают почему-то (ексель 2007), выводит ошибку имени "#ИМЯ?"
Изменено: mishura08 - 27.11.2018 18:39:52
 
mishura08, функция АГРЕГАТ() появилась с 2010 экселя. В 2007 работать НЕ будет.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
попробуйте применить эти формулы массива
=ИНДЕКС(ВВОД!A$1:A$500;НАИМЕНЬШИЙ(ЕСЛИ(ВВОД!B$1:Q$500<>"";СТРОКА(B$1:B$500));СТРОКА(A1)))
=ИНДЕКС(ВВОД!$B$1:$Q$500;ПОИСКПОЗ(A1;ВВОД!A$1:A$500;0);НАИМЕНЬШИЙ(ЕСЛИ(ВВОД!$A$1:$A$500=A1;СТОЛБЕЦ($A:$Q));СЧЁТЕСЛИ(A$1:A1;A1)))
Изменено: artyrH - 27.11.2018 19:17:39
 
Цитата
artyrH написал:
попробуйте применить эти формулы массива
Спасибо большое, сработало.
 
не мне спасибо
 
вариант не массивными (со второй строки)
=ЕСЛИ(СТРОКА()-ПОИСКПОЗ(A1;A$1:A1;)<СЧЁТЕСЛИ(ИНДЕКС(ВВОД!$1:$1048576;ПОИСКПОЗ(A1;ВВОД!A:A;););"> ")-1;A1;ИНДЕКС(ВВОД!A:A;ПОИСКПОЗ(A1;ВВОД!A:A;)+1))
=ГПР("??*";ИНДЕКС(ВВОД!B:XFD;ПОИСКПОЗ(A2;ВВОД!A:A;);ЕСЛИ(A2=A1;ПОИСКПОЗ(B1;ИНДЕКС(ВВОД!B:XFD;ПОИСКПОЗ(A2;ВВОД!A:A;););))+1):ИНДЕКС(ВВОД!B:XFD;ПОИСКПОЗ(A2;ВВОД!A:A;);16383);1;)
прим. с одной буквой работать не будет.
если б не было пробелов в якобы пустых ячейках, было бы проще.
Изменено: Catboyun - 27.11.2018 20:56:45
Страницы: 1
Наверх