Такая проблема: - Есть список мейл адресов (более 10 000) - Среди них есть одинаковые ящики у разных людей (например: petr221@mail.ru, dima221@yandex.ru, lexa322@mail.ru и так далее) - Необходимо сначала посчитать сколько всего ящиков разных площадок (на нашем примере @mail.ru - 2, @yandex.ru - 1) - И необходимо потом процентное соотношение от общего числа мейлов в списке
Файлик прилагаю для примера. Заранее большое спасибо!
Формула массива, которая формирует список уникальных доменов (без доп столбцов), а дальше решение уже было. Как работает сам не знаю. Как отрезать домен украл у Сергей, а извлечение списка уникальных значений позаимствовал тут в комментарии Sam D.
Sub test()
Dim dicObj As Object
Dim i&
Set dicObj = CreateObject("scripting.dictionary")
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
dicObj.Item(CStr(Split(Cells(i, "a"), "@")(1))) = dicObj.Item(CStr(Split(Cells(i, "a"), "@")(1))) + 1
Next i
Range("B2").Resize(dicObj.Count, 2) = Application.Transpose(Array(dicObj.keys, dicObj.Items))
For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
Cells(i, "D") = Cells(i, "C") / WorksheetFunction.Sum(Range("C2:C" & Cells(Rows.Count, "C").End(xlUp).Row))
Cells(i, "D").NumberFormat = "0.00%"
Next
End Sub