Страницы: 1
RSS
Как разбить данные одной таблицы на разные листы?, (данные сгруппированы по значению в одной из колонок)
 
Здравствуйте. Есть большая таблица, в которой данные сгруппированы по значениям в одной из колонок. Необходимо распределить эти группы на отдельные листы книги. И названия листов прописать в соответствии с этими значениями. Это возможно сделать с использованием функций или необходимо привлекать макросы? Помогите, пожалуйста, если уже такой вопрос рассматривали - направьте почитать)
Изменено: weresa - 07.11.2017 22:21:12
 
Цитата
Это возможно сделать с использованием функций или необходимо привлекать макросы?
Думаю, что необходимо писать макрос
 
Kuzmich, спасибо, помогли...
А все-таки кто выручит?
Я где-то на параллельном сайте видела аналогичную задачу, там вроде формулами справились, но я правда ничего не поняла((
 
Цитата
weresa написал:
А все-таки кто выручит?
В каком плане? Макрос за Вас написать? :)
Цитата
weresa написал:
видела аналогичную задачу, там вроде формулами справились
Не-а. Не могли справиться одними формулами, т.к. они не умеют переименовывать листы и уж тем более их создавать.
Посмотрите в сторону PLEX(на этом сайте) - она вроде как умеет это делать. Там есть ДЕМО-версия на месяц - хватит, чтобы притереться.
Изменено: The_Prist - 09.11.2017 09:42:04
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
необходимо привлекать макросы
Код
'запускать при активном листе Лист2
Sub RaznestiDannye()
Dim i As Long
Dim n As Integer
Dim Criterij As String
Dim iName As String
Dim Sht As Worksheet
Application.ScreenUpdating = False
  Set Sht = ThisWorkbook.Worksheets("Лист2")
        Columns("N").ClearContents
     'отбор уникальных значений столбца A в столбец N
    Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy _
                                  , CopyToRange:=Range("N1"), Unique:=True
     'количество уникальных значений типов
        n = Cells(Rows.Count, "N").End(xlUp).Row
    For i = 2 To n          'цикл по уникальным значениям
        Criterij = Sht.Cells(i, "N")
        iName = Criterij    'имя нового листа
     'создаем новый лист
       Worksheets.Add After:=Worksheets(Worksheets.Count)
     'ставим автофильтр по столбцу A
       Sht.Range("A1:L21").AutoFilter 1, Criterij
     'копируем видимые строки в новый лист
        Sht.AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy
        With Worksheets(Worksheets.Count)
          .Range("A1").PasteSpecial xlPasteColumnWidths
          .Range("A1").PasteSpecial xlPasteValues
          Sht.AutoFilter.Range.AutoFilter
          .Name = iName
          .Range("A1").Select
        End With
    Next
Application.ScreenUpdating = True
End Sub
Изучайте!
 
Kuzmich, получилось! Супер!  :D
БЛАГОДАРЮ))  
Страницы: 1
Читают тему
Наверх