Недавно мой коллега Аксютин Денис "создал" полезный в нашей работе скрипт, макрос для Excel, подсчитывающий количество уникальных значений в определенном столбце листа книги. Данным макросом делюсь с Вами.
	
	Function CountUnique(ByVal Rng As Range) As Long
	Dim St As String
	
	Set Rng = Intersect(Rng, Rng.Parent.UsedRange)
	On Error Resume Next
	St = "'" & Rng.Parent.Name & "'!" & Rng.Address(False, False)
	CountUnique = Evaluate("SUM(IF(LEN(" & St & "),1/COUNTIF(" & St & "," & St & ")))")
	End Function
	
	
	Sub UniqueValues()
	Application.ReferenceStyle = xlA1
	ip = (CountUnique(ActiveSheet.Range("N:N"))) - 1
	fio = (CountUnique(ActiveSheet.Range("C:C"))) - 1
	MsgBox "Сетевых адресов: " & ip & Chr(13) & "Пользователей СПД: " & fio
	End Sub
Данный скрипт подсчитывает количество уникальных значений в столбцах N (Сетевые адреса) и C (ФИО работника).
Обратите внимание, что от результирующего значения отнимается 1. Это сделано для того, чтобы исключить шапку табличного отчета.
Также Вам может быть интересно:
Подсчет уникальных значений с помощью меню и опций самого Microsoft Office Excel.
Подсчет уникальных значений в столбце OpenOffice Calc

 
						
