Уважаемые знатоки, пользовался гуглом, поиском по форуму - однозначный ответ на свой вопрос не нашел. Задача следующая - есть массив фамилий повоторяющихся, нужно вывести частоту встречаемости каждой на отдельный лист. Т.е. что бы это выглядело следующим образом: Шацкая - 8 Артеменко - 5 Клименко - 10 ...... ......
Есть куча схожих вариантов, но я не смог приспособить под свою таблицу, скорее всего, вследствие недостаточности знаний работы с массивами Пример файла ниже
Уважаемые знатоки, пользовался гуглом, поиском по форуму - однозначный ответ на свой вопрос не нашел. Задача следующая - есть массив фамилий повоторяющихся, нужно вывести частоту встречаемости каждой на отдельный лист. Т.е. что бы это выглядело следующим образом: Шацкая - 8 Артеменко - 5 Клименко - 10 ...... ......
Есть куча схожих вариантов, но я не смог приспособить под свою таблицу, скорее всего, вследствие недостаточности знаний работы с массивами Пример файла нижеRaid
Если правильно понял, то задача1 - из массива с фамилиями составить список всех фамилий. Задача 2 - против каждой фамилии прописать сколько раз эта фамилия встречается в массиве. Или уж есть список фамилий которые нужно посчитать? На соседнем листе я его не увидел. Пр наличии списка посчитать можно просто
Код
=СЧЁТЕСЛИ(График!$A$1:$AD$14;A1)
Сложнее из массива выбрать все фамилии и составить список.
Если правильно понял, то задача1 - из массива с фамилиями составить список всех фамилий. Задача 2 - против каждой фамилии прописать сколько раз эта фамилия встречается в массиве. Или уж есть список фамилий которые нужно посчитать? На соседнем листе я его не увидел. Пр наличии списка посчитать можно просто
Код
=СЧЁТЕСЛИ(График!$A$1:$AD$14;A1)
Сложнее из массива выбрать все фамилии и составить список.gling
Sub CountUniqueValues() Dim oDic As Object, rng As Range Set oDic = CreateObject("Scripting.Dictionary") For Each rng In Sheets("График").Range("A1").CurrentRegion If rng.Value <> "" Then If oDic.Exists(rng.Value) Then oDic(rng.Value) = oDic(rng.Value) + 1 Else oDic(rng.Value) = 1 End If End If Next rng With Sheets("Статистика") .UsedRange.ClearContents .Range("A1").Resize(oDic.Count) = Application.Transpose(oDic.Keys) .Range("B1").Resize(oDic.Count) = Application.Transpose(oDic.Items) End With End Sub
[/vba]
[vba]
Код
Sub CountUniqueValues() Dim oDic As Object, rng As Range Set oDic = CreateObject("Scripting.Dictionary") For Each rng In Sheets("График").Range("A1").CurrentRegion If rng.Value <> "" Then If oDic.Exists(rng.Value) Then oDic(rng.Value) = oDic(rng.Value) + 1 Else oDic(rng.Value) = 1 End If End If Next rng With Sheets("Статистика") .UsedRange.ClearContents .Range("A1").Resize(oDic.Count) = Application.Transpose(oDic.Keys) .Range("B1").Resize(oDic.Count) = Application.Transpose(oDic.Items) End With End Sub