Здравствуйте. Есть большая таблица, в которой данные сгруппированы по значениям в одной из колонок. Необходимо распределить эти группы на отдельные листы книги. И названия листов прописать в соответствии с этими значениями. Это возможно сделать с использованием функций или необходимо привлекать макросы? Помогите, пожалуйста, если уже такой вопрос рассматривали - направьте почитать)
Kuzmich, спасибо, помогли... А все-таки кто выручит? Я где-то на параллельном сайте видела аналогичную задачу, там вроде формулами справились, но я правда ничего не поняла((
weresa написал: видела аналогичную задачу, там вроде формулами справились
Не-а. Не могли справиться одними формулами, т.к. они не умеют переименовывать листы и уж тем более их создавать. Посмотрите в сторону PLEX(на этом сайте) - она вроде как умеет это делать. Там есть ДЕМО-версия на месяц - хватит, чтобы притереться.
'запускать при активном листе Лист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