Страницы: 1
RSS
Отсортировка данных с таблицы с заголовками и подзаголовками
 
Доброго времени суток!

Мне нужно с таблицы типа базы данных вывести на другой лист данные, отсортированные по заданным критериям с заголовками, подзаголовками и суммировать их. Подскажите как  это сделать.
 
Доброе время суток.
Цитата
Светлана Крашенинникова написал:
Подскажите как  это сделать.
В первом приближении, можно воспользоваться сводными таблицами. Чуть ближе к желаемому макету результата можно приблизиться через Power Pivot. Если нужно 100% соответствие макету, то написать код на VBA.
Изменено: Андрей VG - 09.08.2020 09:46:24
 
Проблема в том, что сводная таблица не подтягивает остальные столбцы (номер п/п, ед.изм, и т.д),а в моем случае это важно.
 
Цитата
Светлана Крашенинникова написал:
а в моем случае это важно.
Ну, тогда стоит подождать заинтересованных VBA-шников. Как вариант, можете построить отчёт в Access, там гораздо больше возможностей в плане форматирования отчётов.
 
Цитата
Светлана Крашенинникова написал:
сводная таблица не подтягивает остальные столбцы (номер п/п, ед.изм, и т.д),
это не совсем так.
По вопросам из тем форума, личку не читаю.
 
Огромное спасибо всем
 
Светлана Крашенинникова, еще вариант, не идеально...
Код
Sub f()
Dim i As Long, lr As Long, k As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
        Cells(lr + 1, 1) = "ИТОГО"
        Cells(lr + 2, 1) = "ВСЕГО"
For i = lr To 3 Step -1
    If Cells(i, 7) = Cells(i - 1, 7) And Cells(i, 8) <> Cells(i - 1, 8) Then
        Rows(i & ":" & i + 1).Insert
        Cells(i + 1, 1) = Cells(i + 2, 8)
        Cells(i, 1) = "ИТОГО"
    ElseIf Cells(i, 7) <> Cells(i - 1, 7) Then
        Rows(i & ":" & i + 3).Insert
        Cells(i, 1) = "ИТОГО"
        Cells(i + 1, 1) = "ВСЕГО"
        Cells(i + 2, 1) = Cells(i + 4, 7)
        Cells(i + 3, 1) = Cells(i + 4, 8)
    Else
    End If
Next i
lr = Cells(Rows.Count, 1).End(xlUp).Row
For k = lr To 3 Step -1
    If Cells(k, 1) = "ВСЕГО" Then
        Cells(k, 6) = Application.WorksheetFunction.SumIf(Range("G:G"), Cells(k - 2, 7), Range("F:F"))
    ElseIf Cells(k, 1) = "ИТОГО" Then
        Cells(k, 6) = Application.WorksheetFunction.SumIfs(Range("F:F"), Range("G:G"), Cells(k - 2, 7), Range("H:H"), Cells(k - 2, 8))
    End If
Next k
Range("A3" & ":H" & lr).Borders.LineStyle = xlContinuous
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Светлана Крашенинникова написал:
Отсортировка
И где только такие слова находят? ))
По аналогии напрашивается Отфильтрация
 
Это случайно получилось.... самой смешно было...
Страницы: 1
Наверх