2016-02-17 4 views
0

Я пытаюсь подсчитать количество уникальных значений в списке против данного имени.Подсчет числа уникальных значений в списке по названию/категории

Пример:

enter image description here

В этом случае Аби имеет 2 уникальных номеров, Барри имеет 1, Крисси имеет 2 и Дейв 1.

Я изо всех сил, чтобы найти первенствовать формула, что я могу положить в колонке см и подсчитать количество уникальных значений для каждого имени:

enter image description here

Я обнаружил, что эта формула дает больше числа уникальных чисел, если они являются числами на самом деле (вы можете заметить маленькие зеленые треугольники в примере. Из-за способа генерируются номера, номера сохранены в виде текста):

=SUM(IF(FREQUENCY(A1:A8;A1:A8)>0;1)) 

Я попробовал эту формулу, но придумал ничего, кроме #VALUE !, независимо от того, были ли номера текст или нет:

=SUM(IF(FREQUENCY(IF(LEN(E6:E14)>0;MATCH(E6:E14;E6:E14;0);""); IF(LEN(E6:E14)>0;MATCH(E6:E14;E6:E14;0);""))>0;1)) 

Я играл с инструкцией IF, SUMIF, COUNTIFS, но не ударил эту магическую комбинацию.

Вы можете мне помочь?

+0

Вы можете скопировать столбцы A: B в новый набор столбцов, преформы на 'Удалить Duplicates' на обеих колонках, то' COUNTIF' на имя в новом наборе столбцов. –

ответ

0

Попробуйте этот короткий макрос:

Sub UniqueTable() 
    Dim i As Long, N As Long, c As Collection, M As Long 
    Dim j As Long, vd As String, va As String 

    Columns("A:A").Copy Range("D1") 

    ActiveSheet.Range("D:D").RemoveDuplicates Columns:=1, Header:=xlYes 

    Range("E1").Value = "# of unique values" 

    N = Cells(Rows.Count, "D").End(xlUp).Row 
    M = Cells(Rows.Count, "B").End(xlUp).Row 

    For i = 2 To N 
     Set c = Nothing 
     Set c = New Collection 
     vd = Cells(i, "D").Value 
     For j = 2 To M 
      va = Cells(j, "A").Value 
      If va = vd Then 
       On Error Resume Next 
        c.Add Cells(j, "B").Value, CStr(Cells(j, "B").Value) 
       On Error GoTo 0 
      End If 
     Next j 
     Cells(i, "E").Value = c.Count 
    Next i 
End Sub 

enter image description here

Смежные вопросы