Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 11.01.2019, 01:49   #1
labeanchik
 
Регистрация: 11.01.2019
Сообщений: 3
По умолчанию Чередующиеся строки столбца перевести в столбцы

Здравствуйте, я - нуб.
Есть простенькая задача и даже до нее додуматься не могу.
Имеются какие-то данные (мы будем считать, что они чередуются) записанные в столбец:
1
2
3
1
2
3
...
Эти данные нужно перевести в столбцы построчно:
123
123
...

Буду признателен за помощь.
labeanchik вне форума   Ответить с цитированием
Старый 11.01.2019, 09:58   #2
jillitil
Форумчанин
 
Аватар для jillitil
 
Регистрация: 17.10.2018
Сообщений: 117
По умолчанию

  1. Выделить
  2. Копировать
  3. Выбрать ячейку назначения
  4. Правка -> Специальная вставка... -> "Транспонировать" -> Окэй
jillitil вне форума   Ответить с цитированием
Старый 11.01.2019, 10:07   #3
labeanchik
 
Регистрация: 11.01.2019
Сообщений: 3
По умолчанию

jillitil
Тогда получится так:
123123, а не
123
123

Нужно как-то задать, после какой строки столбца начинало транспонировать на следующую строку.

Последний раз редактировалось labeanchik; 11.01.2019 в 10:10.
labeanchik вне форума   Ответить с цитированием
Старый 11.01.2019, 11:21   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 2,697
По умолчанию

Код:
Sub someShit()
    Dim r As Range
    Dim i As Integer, j As Integer
    Dim counter As Integer: counter = 0
    Dim c As Integer
    Set r = Nothing
    j = 1: i = 2: prevC = 0
    While Cells(i, "A") <> vbNullString
        c = Application.WorksheetFunction.CountIf(Range("A2:A" & i), Cells(i, "A"))
        If c = counter Then
            If r Is Nothing Then
                Set r = Cells(i, "A")
            Else
                Set r = Union(r, Cells(i, "A"))
            End If
        Else
            If Not r Is Nothing Then
                Cells(j, "H").Resize(1, r.Cells.Count).Value = Application.Transpose(r.Value)
            End If
            Set r = Cells(i, "A")
            j = j + 1
            counter = c
        End If
        i = i + 1
    Wend
    Cells(j, "H").Resize(1, r.Cells.Count).Value = Application.Transpose(r.Value)
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 11.01.2019 в 11:29.
Aleksandr H. на форуме   Ответить с цитированием
Старый 13.01.2019, 14:09   #5
Giorg
 
Регистрация: 07.08.2011
Сообщений: 4
По умолчанию

Если нет пустых ячеек - попробуйте записать формулы и растянуть
- в ячейку C1: =СМЕЩ($A$1; СТРОКА()*3-3;0)
- в ячейку D1: =СМЕЩ($A$1; СТРОКА()*3-2;0)
- в ячейку E1: =СМЕЩ($A$1; СТРОКА()*3-1;0)
Предполагается, что столбец с данными начинается с первой строки колонки А.
Giorg вне форума   Ответить с цитированием
Старый 14.01.2019, 03:23   #6
labeanchik
 
Регистрация: 11.01.2019
Сообщений: 3
По умолчанию

Aleksandr H. Спасибо, но мне до этого еще далеко. Нужно разжевывать, что какая команда делает, чтобы самому корректировать и дополнять.

Giorg Спасибо, могу расцеловать - очень помогло.
Мне нужно было еще и пару строк перепрыгнуть.
А раз они тоже чередуются в цикличной(как и основные данные) последовательности, то мне не составило труда подкорректировать как мне нужно.
Вы очень помогли мне.

Последний раз редактировалось labeanchik; 14.01.2019 в 03:41.
labeanchik вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
в Делфи написать программу с формированием матрицы с определенным весом строки, столбца, с длиной строки, столбца Milanista Помощь студентам 20 05.06.2015 18:38
VBA чередующиеся строки по цвету Alexsandr Microsoft Office Excel 2 01.03.2012 14:56
Delphi. упорядочить столбцы матрицы по возрастанию сумм элементов этого столбца ДваДваВо7 Помощь студентам 2 09.02.2011 17:40
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца Aleo13 Помощь студентам 5 15.10.2008 18:34