Страницы: 1
RSS
Подсчитать количество повторяющихся значений в столбце
 
Здравствуйте!    
 
Помогите, пож-та, с таблицей.  
 
Есть таблица с названиями организаций. Список большой.  
Нужно подсчитать в отдельной таблице ( или на отдельный лист) Сколько раз одно наименование указывалось в таблице.  
 
В конечном виде нужно примерно так:  
Ромашки  4  
Трактор  2  
Адмирал  1    
Господа  2    
и т.д.
 
формула =счетесли()
 
{quote}{login=EducatedFool}{date=05.05.2011 03:49}{thema=}{post}формула =счетесли(){/post}{/quote}  
 
А можете объяснить как ею в данном случае воспользоваться?
 
Объяснить может справка Excel. На форуме могут показать на конкретном примере. На ВАШЕМ примере.
 
{quote}{login=EducatedFool}{date=05.05.2011 03:49}{thema=}{post}формула =счетесли(){/post}{/quote}  
Или сводная таблица
 
Мой пример прикрепила.
 
Можно было и поменьше строк :-) И где считать? Можно было и показать вручную посчитанное желаемое.
 
Ваш файл.
 
{quote}{login=Юрий М}{date=05.05.2011 04:16}{thema=}{post}Ваш файл.{/post}{/quote}  
 
Не поняла как. Попыталась продлить формулу, там стала повторяться организация и кол-во 0.  
 
Прикрепила укороченную (:)) таблицу. В ней "нарисован" тот вариант, который я хочу получить в итоге: Список организаций, и кол-во в списке.
 
Еще есть такая штука Данные - Итоги (в 2007 Данные - Промежуточные итоги):
 
Не видно Вашей укороченной...  Попробуйте теперь протянуть формулу на одну ячейку вниз. Для большего количества - создайте список уникальных значений из столбца А.  
И справку не игнорируйте.
 
Я для таких задач файл из  
http://www.planetaexcel.ru/forum.php?thread_id=26105  
использую. Только т.к. он заточен суммировать суммы, то сперва в свободном столбце нужно всем протянуть единицы, а потом эти единицы просуммировать.  
Если задача регулярная - можно тот код чуть изменить, что не суммировал суммы по столбцу сумм, а считал повторы по столбцу значений.  
Пока так - запустили тот файл, в своём протянули единицы, выделили диапазон, серез Alt+F8 запустили макрос из того файла/
 
Макрос выбирает уникальные записи из столбца А  
и переносит в столбец G, затем сортирует уникальный    
список и подсчитывает количество каждого уникального  
вхождения
 
см файл
 
вторая попытка
 
Скомпоновал немного из кода Kuzmich'a, остальное из кода  
http://www.planetaexcel.ru/forum.php?thread_id=26105  
Работает быстрее на 30%, без сортировки быстрее в 2 раза.  
 
Sub UniqCount()  
   Dim tm: tm = Timer  
   Dim a(), oDict As Object, i As Long, temp As String  
   Dim iLastRow As Long, iLastRow2 As Long, Rng2 As Range  
 
   iLastRow = Cells(Rows.Count, 1).End(xlUp).Row   'посл.строка в диапазоне названий  
   Range(Cells(2, 7), Cells(iLastRow, 7)).Clear   'очистка диапазона для уникальных  
 
   'определение диапазона названий  
   a = Range(Cells(2, 1), Cells(iLastRow, 1)).Value  
 
   Set oDict = CreateObject("Scripting.Dictionary")  
   oDict.CompareMode = 1  
   For i = 1 To UBound(a)  
       ' If Len(a(i, 1)) Then  
       If Not IsEmpty(a(i, 1)) Then  
           temp = Trim(a(i, 1))  
           If Not oDict.Exists(temp) Then  
               oDict.Add temp, 1  
           Else  
               oDict.Item(temp) = oDict.Item(temp) + 1  
           End If  
       End If  
       'End If  
   Next  
 
   Range("G2").Resize(oDict.Count) = Application.Transpose(oDict.keys)  
   Range("H2").Resize(oDict.Count) = Application.Transpose(oDict.items)  
 
       'определение диапазона уникальных записей и его сортировка  
       iLastRow2 = Cells(Rows.Count, 7).End(xlUp).Row  
       Set Rng2 = Range(Cells(1, 7), Cells(iLastRow2, 8))  'в G1- заглавие столбца-название  
       Rng2.Sort Key1:=Range("G1"), Order1:=xlAscending, Header:=xlYes  
 
   Debug.Print Timer - tm  
End Sub
 
Всем спасибо большое за помощь!
Страницы: 1
Читают тему
Наверх
Loading...