Страницы: 1
RSS
Транспонивать диапазон в столбцы., в одной строке данные которые нужно ТРАНСП в три столбца
 
Добрый день.
Проблема в том что у меня 2000 строк которые нужно транспортировать в три столбца.
1.Если строка полностью пустая то не нужно транспортировать
2. если одна из ячеек в строке не пустая то необходимо транспортировать в три столбца.
3.если после транспортирования в трех столбцах появилась пустая строка но не нужно ее показывать.(

Спасибо за ранее.
Изменено: radmirka666 - 21.08.2017 11:18:41 (Не тот файл скинул)
 
Макросом можно так:
Код
Sub etst()
    Dim lastrow As Long 'объявляем переменную
       For j = 1 To 2 'тут кол-во строк откуда тянем (в примере "B5:B6" 2 строки). Объявление цикла
        For i = 2 To 8 ' столбцы исх табл (все 3 таблицы у Вас содержат по 8 столбцов) Объявление цикла
         If Cells(j + 4, i) <> "" Or Cells(j + 4, i + 8) <> "" Or Cells(j + 4, i + 16) <> "" Then 'смотрим чтобы хоть в 1 из 3 таблиц было значение 
          lastrow = Cells(Rows.Count, 1).End(xlUp).Row 'ищем последнюю заполненную строку
          Cells(lastrow + 1, 1) = Cells(lastrow, 1).Value + 1 'проставляем порядковый номер
          Cells(lastrow + 1, 2) = Cells(j + 4, i) 'переносим значение из 1 таблицы, например C5 (j+4 означает 5 строку)
          Cells(lastrow + 1, 3) = Cells(j + 4, i + 8) 'переносим значение из 2 таблицы, например K5 (i+8 означает столбец K)
          Cells(lastrow + 1, 4) = Cells(j + 4, i + 16)'переносим значение из 3 таблицы, например S5 (i+16 означает столбец S)
         End If
       Next i, j
End Sub

Изменено: Илья Демид - 21.08.2017 11:20:28
 
Спасибо. сейчас попробую)
 
Илья а можно по проще что нить?) Допустим диапазон ячеек в столбец один.
 
Что имеется ввиду?) Самый простой способ это сделать сводную и фильтром отключить пустые
Цитата
radmirka666 написал:
в столбец один.
Изменено: Илья Демид - 21.08.2017 10:56:18
 
Воть скинул. а то я ваш макрос вставляю и мозг у меня начинает кипеть)
 
=ИНДЕКС($B$5:$H$10;ОСТАТ((СТРОКА(A1)-1)/7;7)+1;ОСТАТ((СТРОКА(A1)-1);7)+1)
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Формулой как то так,
Код
ЕСЛИ(ТРАНСП($B$5:$H$5)="";"";ТРАНСП($B$5:$H$5))

Но вот как ее заставить работать на 2 строку я не знаю. Через сводную я погорячился так дольше будет. Сейчас скрипт комментариями дополню может так легче Вам будет

 
Владимир. а на 2000 строк и 27 столбцов потянет?
 
Потянет, только оно Вам пустые строки оставит, тогда надо их будет просто удалить. Точнее не пустые а будет = 0
Изменено: Илья Демид - 21.08.2017 11:28:24
 
Спасибо. Понял
 
Владимир, к сожалению формула работает не корректно на большом диапазоне, наччинает повторятся
 
У Вас сколько столбцов? Посчитайте и вместо 7 везде вставьте количество столбцов. Более ничего менять не нужно.
Ну и диапазон ИНДЕКСА исправьте на текущий.
Изменено: Владимир - 21.08.2017 14:36:14
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
27 столбцов. я менял 7 на 27. сначала все четко считает и на половине снова начинает считать сначала. Диапазон соответственно изменил.
=ИНДЕКС(ВСЕ!$E$3:$AE$99;ОСТАТ((СТРОКА(A784)-1)/27;27)+1;ОСТАТ((СТРОКА(A784)-1);27)+1)
Изменено: radmirka666 - 21.08.2017 14:37:25
 
В трёх местах поменяли или в двух?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
в трех
Изменено: radmirka666 - 21.08.2017 14:37:45
 
Тогда файл с ошибкой нужен.  
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
как могу скинуть? он 24 метра весит
Изменено: radmirka666 - 21.08.2017 14:39:29
 
Ну 24 мне даже на почту не надо. Попробуйте скрин сделать и формулу зацепите.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Воть
 
Нашёл ошибку.
=ОСТАТ((СТРОКА(A1)-1)/27;27)+1 должно быть указано количество строк, а не столбцов.
Т.е.99
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Код
ОСТАТ((СТРОКА(A1)-1)/27;96)+1
Спасибо)шикарная формула)))
Изменено: radmirka666 - 21.08.2017 15:09:52
 
Даже 96.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир добрый день. А можно ль сделать так что б количество столбцов "27", было переменным т.е если в строке "5" с "10 "по "27" столбец пустая ячейка то переходить на следующую строку?
 
Цитата
Владимир написал:
Даже 96.
Владимир добрый день. А можно ль сделать так что б количество столбцов "27", было переменным т.е если в строке "5" с "10 "по "27" столбец пустая ячейка то переходить на следующую строку?
 
Добрый.
По данной формуле, нет. Это формула создаёт цикл.
Если комп виснет, то не от этой формулы, т.к она очень проста.
Нужно проверить листы на псевдопустые ячейки, наличие "картинок", форматирования и пр мусора. Если количество строк зашкаливает за сотню тысяч, то лучше макрос использовать.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
Страницы: 1
Наверх