webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg

Как в excel расположить данные в одном столбце?

Есть таблица:
id1 а b
id2 с d e
id3 f g
Надо ее привести к виду
id1 а
id1 b
id2 c
id2 d
и т.д.
строк 150 тыс. столбцов 20
Как? Есть методы? Или идеи?
  • Вопрос задан
  • 727 просмотров
Решения вопроса 1
@Beltoev
Живу в своё удовольствие
Alt+F11, там пишите макрос, который будет смотреть столбцы справа на наличие значений и, если найдет, добавит строку, внесёт это значение.
В принципе, ничего сложного. Других путей тут как бы нет (в смысле, без VBA)

UPD:
Sub Обработка()
    Dim row As Long, column As Long, i As Long
    row = 1 ' строка, с которой начинаем обработку
    column = 1 ' столбец с id
    
    Do While Len(Cells(row, column).Value) <> 0
    
        i = 2
        Do While Len(Cells(row, column + i).Value) <> 0
        
            Rows(row + i - 1 & ":" & row + i - 1).Select
            Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
            Cells(row + i - 1, column).Value = Cells(row, column).Value
            Cells(row + i - 1, column + 1).Value = Cells(row, column + i).Value
            Cells(row, column + i).Value = ""
            i = i + 1
            
        Loop
        
        row = row + 1
    Loop
    
End Sub


На 150 тыс. может на пару минут растянуться, но, главное, свою задачу выполнит.
Если часто будете использовать решение: можно оптимизировать, считав всё это в память для вычислений
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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