Как создать автоматом пустые строки в нужных местах и подсчитать колличество строк домов и сумму всех человек ? Всеь инет перерыл( в общем таблица с адресами надо в конце каждого адреса одинакового создать строку, образцы прикладываю, до и после... но самое страшное что все это надо отдельно пересчитать как массив наверно, чтоб в цветной строке показывалось количество домов по строкам и количество жителей по сумме... через сводную таблицу все результаты я получил но это НАЧАЛЬНЕГ СРАНЫЙ хочет так как в образце
Как создать автоматом пустые строки в нужных местах и подсчитать колличество строк домов и сумму всех человек ? Всеь инет перерыл( в общем таблица с адресами надо в конце каждого адреса одинакового создать строку, образцы прикладываю, до и после... но самое страшное что все это надо отдельно пересчитать как массив наверно, чтоб в цветной строке показывалось количество домов по строкам и количество жителей по сумме... через сводную таблицу все результаты я получил но это НАЧАЛЬНЕГ СРАНЫЙ хочет так как в образцеpritlex
Формулами думаю никак не сделать. Что именно хочет этот начальник? Хочет видеть результат, или хочет видеть как Вы это решите? И нехорошо так говорить о начальнике. Не боитесь что он этот файл/задачу узнает?
Формулами думаю никак не сделать. Что именно хочет этот начальник? Хочет видеть результат, или хочет видеть как Вы это решите? И нехорошо так говорить о начальнике. Не боитесь что он этот файл/задачу узнает? Hugo
Я сделал одну таблицу пример при желании бросить могу, но увы это не то что ему нужно) а сраный потому что ему это не нужно мы работаем с этим а не он)
Я сделал одну таблицу пример при желании бросить могу, но увы это не то что ему нужно) а сраный потому что ему это не нужно мы работаем с этим а не он)pritlex
Ничто не укрепляет доверие как стопроцентная предоплата)
Цикл снизу вверх, запоминаем позицию "пустой" строки, анализируем изменение по столбцу и считаем - как изменилось в строку пишем сосчитанное и добавляем "пустую" строку и т.д.
Цикл снизу вверх, запоминаем позицию "пустой" строки, анализируем изменение по столбцу и считаем - как изменилось в строку пишем сосчитанное и добавляем "пустую" строку и т.д.Hugo
Как Вам идея преобразовывать по нажатию кнопки? Образец во вложении.
[vba]
Код
Sub Reorganize()
Dim H As Long 'Height of table Dim A As Long 'Start point Dim B As Long 'Finish point Dim i As Long 'to roll
H = Cells(Rows.Count, 1).End(xlUp).Row If H < 2 Then Exit Sub B = H
For i = H To 2 Step -1 If Cells(i, 2).Value <> Cells(i + 1, 2).Value Then A = i + 1 Rows(A).Insert Range(Cells(A, 1), Cells(A, 6)).Interior.Color = 49407 B = i End If Next i
H = Cells(Rows.Count, 1).End(xlUp).Row + 1 A = 2
For i = 2 To H Step 1 If Cells(i, 1).Value = "" Then B = i - 1 Cells(i, 3).Value = B - A + 1 Cells(i, 5).Value = Application.WorksheetFunction.Sum(Range(Cells(A, 5), Cells(B, 5))) A = i + 1 End If Next i
End Sub
[/vba]
pritlex, здравствуйте.
Как Вам идея преобразовывать по нажатию кнопки? Образец во вложении.
[vba]
Код
Sub Reorganize()
Dim H As Long 'Height of table Dim A As Long 'Start point Dim B As Long 'Finish point Dim i As Long 'to roll
H = Cells(Rows.Count, 1).End(xlUp).Row If H < 2 Then Exit Sub B = H
For i = H To 2 Step -1 If Cells(i, 2).Value <> Cells(i + 1, 2).Value Then A = i + 1 Rows(A).Insert Range(Cells(A, 1), Cells(A, 6)).Interior.Color = 49407 B = i End If Next i
H = Cells(Rows.Count, 1).End(xlUp).Row + 1 A = 2
For i = 2 To H Step 1 If Cells(i, 1).Value = "" Then B = i - 1 Cells(i, 3).Value = B - A + 1 Cells(i, 5).Value = Application.WorksheetFunction.Sum(Range(Cells(A, 5), Cells(B, 5))) A = i + 1 End If Next i
Новичёк, да, повторное нажатие кнопки за пользователем не предусмотрено. Если у Вас есть такая необходимость - добавить можно. Но в рамках отдельно решаемого вопроса.
"Да я отшельник, маг и волшебник (...) " (с) рок-группа Ария Сама собой песенка вспомнилась.
Новичёк, да, повторное нажатие кнопки за пользователем не предусмотрено. Если у Вас есть такая необходимость - добавить можно. Но в рамках отдельно решаемого вопроса.
Dim H As Long 'Height of table Dim A As Long 'Start point Dim B As Long 'Finish point Dim i As Long 'to roll
H = Cells(Rows.Count, 1).End(xlUp).Row If H < 2 Then Exit Sub B = H: Range("F2:G" & H).Clear [F1:G1].Value = Array("Кол-во домов", "Кол-во жителей") Range("F1").Copy: Range("G1").PasteSpecial Paste:=xlPasteFormats
For i = H To 2 Step -1 If Cells(i, 2).Value <> Cells(i + 1, 2).Value Then A = i + 1: Rows(A).Insert Range(Cells(A, 1), Cells(A, 6)).Interior.Color = 49407 B = i End If Next i
H = Cells(Rows.Count, 1).End(xlUp).Row + 1: A = 2
For i = 2 To H Step 1 If Cells(i, 1).Value = "" Then B = i - 1 Cells(i, 3).Value = B - A + 1: Cells(A, 6).Value = B - A + 1 Cells(i, 5).Value = Application.WorksheetFunction.Sum(Range(Cells(A, 5), Cells(B, 5))) Cells(A, 7).Value = Cells(i, 5).Value Range(Cells(A, 6), Cells(i, 6)).Merge: Range(Cells(A, 7), Cells(i, 7)).Merge A = i + 1 End If Next i
With Range(Cells(2, 6), Cells(H, 7)) For i = 7 To 12: .Borders(i).LineStyle = 1: Next i .HorizontalAlignment = xlCenter: .VerticalAlignment = xlCenter .Font.Bold = True Columns("F:G").ColumnWidth = 16 End With
End Sub
[/vba]
pritlex, что-то вроде этого?
[vba]
Код
Sub Reorganize2()
Dim H As Long 'Height of table Dim A As Long 'Start point Dim B As Long 'Finish point Dim i As Long 'to roll
H = Cells(Rows.Count, 1).End(xlUp).Row If H < 2 Then Exit Sub B = H: Range("F2:G" & H).Clear [F1:G1].Value = Array("Кол-во домов", "Кол-во жителей") Range("F1").Copy: Range("G1").PasteSpecial Paste:=xlPasteFormats
For i = H To 2 Step -1 If Cells(i, 2).Value <> Cells(i + 1, 2).Value Then A = i + 1: Rows(A).Insert Range(Cells(A, 1), Cells(A, 6)).Interior.Color = 49407 B = i End If Next i
H = Cells(Rows.Count, 1).End(xlUp).Row + 1: A = 2
For i = 2 To H Step 1 If Cells(i, 1).Value = "" Then B = i - 1 Cells(i, 3).Value = B - A + 1: Cells(A, 6).Value = B - A + 1 Cells(i, 5).Value = Application.WorksheetFunction.Sum(Range(Cells(A, 5), Cells(B, 5))) Cells(A, 7).Value = Cells(i, 5).Value Range(Cells(A, 6), Cells(i, 6)).Merge: Range(Cells(A, 7), Cells(i, 7)).Merge A = i + 1 End If Next i
With Range(Cells(2, 6), Cells(H, 7)) For i = 7 To 12: .Borders(i).LineStyle = 1: Next i .HorizontalAlignment = xlCenter: .VerticalAlignment = xlCenter .Font.Bold = True Columns("F:G").ColumnWidth = 16 End With