Excel транспонирует и организует

У меня есть набор строк, что я хочу превратиться в таблицу.

Существует ли путь в Excel для преобразования набора записей, каждый занимающий четыре строки в таблицу, куда каждая из этих четырех строк помещается в один из четырех столбцов?

В основном это:

a
b
c
d

a
b
c
d

кому:

 a b c d
 a b c d
2
задан 25.02.2010, 18:25

4 ответа

Я не делаю от вершины o' моя голова, знают способ сделать это для Всех них, но можно вставить как это...

  • выберите один набор abcd
  • скопируйте ячейки
  • редактирование-> особенная вставка
  • [x] транспонировать кнопка внизу

Это сделает это для ТОГО набора a/b/c/d. Я знаю, что это не полный ответ, но если нет слишком многих из них затем, это могло бы работать.

Вот быстрый макрос, который сделает транспонирование для Вас, если Вам нравится. Просто поместите все в столбец "A", и он поместит все это в B1, C1, D1, и т.д. Строки очерчены пробелами, и два пробелов подряд означают "остановку".

зафиксированный, должен работать хорошо максимум на 255 столбцов теперь. и да, можно использовать установку Transpose в функции pastespecial в vba, но это просто делает код более сложным для того же результата, таким образом, я сохранил это простым

Sub Macro1()
    lastBlank = False
    col = 2 'B
    row = 1
    For Each cell In Range("A:A")
        v = Trim(CStr(cell))
        If v = "" Then
            If lastBlank = True Then Exit For
            lastBlank = True
            col = 2 'B
            row = row + 1
        Else
            Cells(row, col) = v
            col = col + 1
            lastBlank = False
        End If
    Next
End Sub
  • Инструменты-> Макросы-> Visual Basic Editor
  • [меню] Вставляет-> Модуль
  • Вставьте макрос в (должен быть в 'Module1'),
  • Выполненный (зеленая стрелка). Или... близко и инструменты-> макро-> макросы-> [выполненный]
4
ответ дан 08.12.2019, 05:57

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

Должен быть способ исправить индексацию строки (для составления пробелов) использование ADDRESS функция.

0
ответ дан 08.12.2019, 05:57

Можно ввести эти формулы (предполагающий, что данные запускаются в A1), и заливка вниз насколько Вам нужно

B1            =IF(ISBLANK(A5),A1,"")
C1            =IF(ISBLANK(A5),A2,"")
D1            =IF(ISBLANK(A5),A3,"")
E1            =IF(ISBLANK(A5),A4,"")

Затем Копия и Вставка Специальные Значения. Затем вид для удаления пустых строк.

0
ответ дан 08.12.2019, 05:57

Если кто-либо все еще читает эту статью блога, вот другой способ сделать это (просто набор, которые располагают первую часть в ряд данных, находится в использовании постоянного FirstRow, и затем отпустите его)...

Sub TransposeRowsFourAtATime()  
  Dim X As Long, LastRow As Long, OffSetCounter As Long  
  Const FirstRow As Long = 2  
  LastRow = Cells(Rows.Count, "A").End(xlUp).Row  
  For X = FirstRow To LastRow Step 5  
    Cells(FirstRow, "A").Offset(OffSetCounter).Resize(1, 4) = _  
       WorksheetFunction.Transpose(Cells(X, "A").Resize(4))  
  OffSetCounter = OffSetCounter + 1  
  Next  
  Range(Cells(FirstRow + OffSetCounter, "A"), Cells(LastRow, "A")).Clear  
End Sub  

Rick Rothstein (MVP - Excel)

1
ответ дан 08.12.2019, 05:57

Теги

Похожие вопросы