Здравствуйте. Необходимо сформировать список из фамилий и данных находящихся в строке с этой фамилией Фамилии выбираются из столбцов AG:AG и AT:AT на листе "Данные" И переносятся на лист "Список" в столбец B:B Если: Значение из ячейки G1(оно находится в пределе от 1 до 4 других значений не будет) равно значению из столбца AF для столбца с фамилиями в столбце AG или равно значению из столбца AS для стобца с фамилиями из столбца AT если значения в столбцах AF и AS одинаковые и равны G1 листа Список то фамилий в столбце B:B листа список должно быть две Далее эти фамилии должны отвечать условиям. AE:AE листа Данные, должно быть пустое "" ,Y:Y листа Данные должны быть "Д" и "Т" По этим условиям сформируется список из фамилий в столбце В:В на листе Список
Теперь необходимо заполнить столбцы C:C, D:D, E:E листа Список А они берутся из листа Данные для Лист Список Лист Данные C:C = L:L D:D = P:P E:E = Q:Q
Значения в столбце L:L листа Данные могут быть одинаковы, но соответствующие значения столбца P:P будут разные Требуемый результат на листе список. Все это список ознакомления работников с их пропусками неисправных вагонов и мне хотелось, что бы изменяя № смены (1-4) такой список формировался у меня автоматически Всем участвующим заранее большое спасибо.
Здравствуйте. Необходимо сформировать список из фамилий и данных находящихся в строке с этой фамилией Фамилии выбираются из столбцов AG:AG и AT:AT на листе "Данные" И переносятся на лист "Список" в столбец B:B Если: Значение из ячейки G1(оно находится в пределе от 1 до 4 других значений не будет) равно значению из столбца AF для столбца с фамилиями в столбце AG или равно значению из столбца AS для стобца с фамилиями из столбца AT если значения в столбцах AF и AS одинаковые и равны G1 листа Список то фамилий в столбце B:B листа список должно быть две Далее эти фамилии должны отвечать условиям. AE:AE листа Данные, должно быть пустое "" ,Y:Y листа Данные должны быть "Д" и "Т" По этим условиям сформируется список из фамилий в столбце В:В на листе Список
Теперь необходимо заполнить столбцы C:C, D:D, E:E листа Список А они берутся из листа Данные для Лист Список Лист Данные C:C = L:L D:D = P:P E:E = Q:Q
Значения в столбце L:L листа Данные могут быть одинаковы, но соответствующие значения столбца P:P будут разные Требуемый результат на листе список. Все это список ознакомления работников с их пропусками неисправных вагонов и мне хотелось, что бы изменяя № смены (1-4) такой список формировался у меня автоматически Всем участвующим заранее большое спасибо.Ипалит
Sub svod() Application.ScreenUpdating = False Dim data As Worksheet, list As Worksheet Set data = ThisWorkbook.Sheets("Данные") Set list = ThisWorkbook.Sheets("Список") With list .[a1].CurrentRegion.Offset(2).ClearContents End With With data lr = .Cells(Rows.Count, 1).End(xlUp).Row j = 3 For Each col In Array(33, 46) '("ag", "at") For i = 4 To lr list.Cells(j, 2) = .Cells(i, col) list.Cells(j, 3) = .Cells(i, "l") list.Cells(j, 4) = .Cells(i, "p") list.Cells(j, 5) = .Cells(i, "q") list.Cells(j, 7) = .Cells(i, col - 1) j = j + 1 Next i Next col End With With list .Sort.SortFields.Clear .Sort.SortFields.Add Key:=.[g3].Resize(j - 3) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With .Sort .SetRange list.[a3].Resize(j - 3, 7) .Header = xlGuess: .Apply End With End With End Sub
[/vba]
Ипалит, здравствуйте, макросом подойдет? [vba]
Код
Sub svod() Application.ScreenUpdating = False Dim data As Worksheet, list As Worksheet Set data = ThisWorkbook.Sheets("Данные") Set list = ThisWorkbook.Sheets("Список") With list .[a1].CurrentRegion.Offset(2).ClearContents End With With data lr = .Cells(Rows.Count, 1).End(xlUp).Row j = 3 For Each col In Array(33, 46) '("ag", "at") For i = 4 To lr list.Cells(j, 2) = .Cells(i, col) list.Cells(j, 3) = .Cells(i, "l") list.Cells(j, 4) = .Cells(i, "p") list.Cells(j, 5) = .Cells(i, "q") list.Cells(j, 7) = .Cells(i, col - 1) j = j + 1 Next i Next col End With With list .Sort.SortFields.Clear .Sort.SortFields.Add Key:=.[g3].Resize(j - 3) _ , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With .Sort .SetRange list.[a3].Resize(j - 3, 7) .Header = xlGuess: .Apply End With End With End Sub