Разбить данные на группы в Excel
Модератор: Naeel Maqsudov
-
- Сообщения: 1
- Зарегистрирован: 13 июн 2006, 18:56
Как можно разбить данные на несколько групп, удовлетворяющих определенным условиям (ограничения наложены на один из столбцов таблицы) и подсчитать количество строк в каждой группе?Как можно это сделать с помощью функции "ЕСЛИ"?
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Отсортируйте таблицу по ключевому столбцу и воспользуйтесь меню Данные/Итоги.
Как таковая функция ЕСЛИ вам не подойдет (она работает с одной сторокой).
Если хотите просто подвессти итоги (не изменяя самой таблицы), то сформулируйте условия разбиения на группы (в одном столбце) а рядом используйте функцию СЧЕТЕСЛИ, чтобы получить количество для каждой группы.
см справку по функции СЧЕТЕСЛИ
Как таковая функция ЕСЛИ вам не подойдет (она работает с одной сторокой).
Если хотите просто подвессти итоги (не изменяя самой таблицы), то сформулируйте условия разбиения на группы (в одном столбце) а рядом используйте функцию СЧЕТЕСЛИ, чтобы получить количество для каждой группы.
см справку по функции СЧЕТЕСЛИ
Предлагаю разбить ваши данные с помощью автофильтра, затем дать полученным диапазонам - имена
Действия...
1. включить автофильтр для вашей таблицы
2. записать все критерии с помощью редактора макросов, чтобы получить строчки определения критерия автофильтром
(по сути можно их сформировать и руками)
3. разбить данные на группы - именованные диапазоны с помощью кнопки
в итоге получаем именованные группы "Name_r1", "Name_r2" и т.д.
4. Количество строк определять при помощи пользовательской формулы, умеющей считать количество строк в дипазонах, состоящих из нескольких областей, ЧСТРОК что-то здезь не работает
вот один, не самый совершенный прример...
Действия...
1. включить автофильтр для вашей таблицы
2. записать все критерии с помощью редактора макросов, чтобы получить строчки определения критерия автофильтром
(по сути можно их сформировать и руками)
Код: Выделить всё
Sub Макрос1()
'
' Макрос1 Макрос
' Макрос записан 14.06.2006 (HomePC)
'
Selection.AutoFilter Field:=1, Criteria1:="2"
End Sub
Код: Выделить всё
Private Sub CommandButton1_Click()
Dim r1 As Range
Set r1 = Range("Лист1!_FilterDatabase")
r1.AutoFilter Field:=1, Criteria1:="<3", Operator:=xlAnd
ActiveWorkbook.Names.Add Name:="Name_r1", RefersToR1C1:=r1.SpecialCells(xlCellTypeVisible)
r1.AutoFilter Field:=1, Criteria1:="2"
ActiveWorkbook.Names.Add Name:="Name_r2", RefersToR1C1:=r1.SpecialCells(xlCellTypeVisible)
' и т.д.
End Sub
4. Количество строк определять при помощи пользовательской формулы, умеющей считать количество строк в дипазонах, состоящих из нескольких областей, ЧСТРОК что-то здезь не работает

вот один, не самый совершенный прример...
Код: Выделить всё
Public Function NumRows(Диапазон As Range)
Dim area_r1 As Range
s = 0
For Each area_r1 In Диапазон.Areas
i = i + 1
D_Start_R = area_r1.Row
D_End_R = area_r1.Row + area_r1.Rows.Count - 1
s = s + D_End_R - D_Start_R + 1
Next
NumRows = s
End Function