Таблица формируется с помощью заполнения гугл формы, из-за этого появляются повторяющиеся столбцы:( Необходимо убрать повторяющиеся столбцы используя первый столбец, как главный. Не могу автоматизировать это:( Возможно, кто-то сможет подсказать решение данной проблемы.
Таблица формируется с помощью заполнения гугл формы, из-за этого появляются повторяющиеся столбцы:( Необходимо убрать повторяющиеся столбцы используя первый столбец, как главный. Не могу автоматизировать это:( Возможно, кто-то сможет подсказать решение данной проблемы.victoriaa021
victoriaa021, Название темы не соответвует тому, что вы хотите. Убрать повторяющиеся - тогда это просто удалить все от O до конца.Только они повторяются. Но ведь по сути вы и одну строку с данными (1401102300002 Нет )тоже удалили. формульным решением конечно можно попытаться сделать, однако VBA будет проще.
victoriaa021, Название темы не соответвует тому, что вы хотите. Убрать повторяющиеся - тогда это просто удалить все от O до конца.Только они повторяются. Но ведь по сути вы и одну строку с данными (1401102300002 Нет )тоже удалили. формульным решением конечно можно попытаться сделать, однако VBA будет проще.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Сообщение отредактировал bmv98rus - Суббота, 25.11.2017, 20:55
Пробовала с помощью VBA, но давно с этим не сталкивалась, поэтому не вышло. "Но ведь по сути вы и одну строку с данными (1401102300002 Нет )тоже удалили" - прикрепляя документ, я указала, что это примерный вариант преобразования, так скажем, желаемый. Подойдет вариант, где есть строка (1401102300002 Нет ).
Пробовала с помощью VBA, но давно с этим не сталкивалась, поэтому не вышло. "Но ведь по сути вы и одну строку с данными (1401102300002 Нет )тоже удалили" - прикрепляя документ, я указала, что это примерный вариант преобразования, так скажем, желаемый. Подойдет вариант, где есть строка (1401102300002 Нет ).victoriaa021
victoriaa021, Так покажите что у вас уже сделано и всеж переименуйте тему. Тут скорее преобразование таблицы в простую подходит. А так все выглядит не сложно, каждое поле next говорит о том, есть ли в строке еще один блок данных с тем же кодом (kod_zach_knigi).два цикла по строкам и внутри по столбцам с проверкой этого поля и переносом данных в простую таблицу.
victoriaa021, Так покажите что у вас уже сделано и всеж переименуйте тему. Тут скорее преобразование таблицы в простую подходит. А так все выглядит не сложно, каждое поле next говорит о том, есть ли в строке еще один блок данных с тем же кодом (kod_zach_knigi).два цикла по строкам и внутри по столбцам с проверкой этого поля и переносом данных в простую таблицу.bmv98rus
Замечательный Временно просто медведь , процентов на 20.
Sub test() Dim lr&, i&, k%, r& Dim sh1 As Worksheet, sh2 As Worksheet Set sh1 = ThisWorkbook.Sheets(1) Set sh2 = ThisWorkbook.Sheets(2)
sh2.Cells(1, 1).CurrentRegion.Offset(1).ClearContents With sh1 lr = .Cells(Rows.Count, 1).End(xlUp).Row r = 2 For i = 2 To lr k = 1 Do While (.Cells(i, 3 + 6 * (k - 1)) <> "") sh2.Cells(r, 1) = .Cells(i, 1) sh2.Cells(r, 2).Resize(, 5).Value = .Cells(i, 3 + 6 * (k - 1)).Resize(, 5).Value r = r + 1 k = k + 1 Loop Next i End With End Sub
[/vba]
Очень похожий вариант: [vba]
Код
Sub test() Dim lr&, i&, k%, r& Dim sh1 As Worksheet, sh2 As Worksheet Set sh1 = ThisWorkbook.Sheets(1) Set sh2 = ThisWorkbook.Sheets(2)
sh2.Cells(1, 1).CurrentRegion.Offset(1).ClearContents With sh1 lr = .Cells(Rows.Count, 1).End(xlUp).Row r = 2 For i = 2 To lr k = 1 Do While (.Cells(i, 3 + 6 * (k - 1)) <> "") sh2.Cells(r, 1) = .Cells(i, 1) sh2.Cells(r, 2).Resize(, 5).Value = .Cells(i, 3 + 6 * (k - 1)).Resize(, 5).Value r = r + 1 k = k + 1 Loop Next i End With End Sub