Подсчитать число уникальных значений на основе уникального имени - PullRequest
0 голосов
/ 14 июня 2019

У меня есть список записей, представленных клиентами, и мой список записей содержит повторяющиеся представления.

Какую формулу можно использовать в макросе для подсчета списка уникальных записей на основе каждого клиента?

См. Мой пример данных

Record Name       Submitted By           Status
Lead-123           Peter H               Rejected
Lead-495           Carlos Sinbad         Rejected
Lead-496           Carlos Sinbad         Approved
Lead-101           Timothy Johnson       Approved
Lead-421       Timothy Johnson       Approved
Lead-421       Timothy Johnson       Approved
Lead-421       Timothy Johnson       Approved
Lead-421       Timothy Johnson       Rejected
Lead-393       Derik Fauster         Recalled
Lead-393       Derik Fauster         Approved
Lead-422       Derik Fauster         Rejected
Lead-422       Derik Fauster         Rejected
Lead-422       Derik Fauster         Rejected

Что я хочу

# of Unique Records Submitted     Submitted By 
1                                 Peter H 
2                                 Carlos Sinbad
2                                 Timothy Johnson
2                                 Derik Fauster

Я пробовал это

Sub CountUniqueValues()
Dim LstRw As Long, Rng As Range, List As Object
LstRw = Cells(Rows.Count, "A").End(xlUp).Row
Set List = CreateObject("Scripting.Dictionary")

For Each Rng In Range("A2:A" & LstRw)
  If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next

MsgBox "There are " & List.Count & " unique values in column A from row 2 down."

End Sub

Но я могу получить только уникальные записи дляЗаписать имя, и я не могу связать его с уникальным отправленным.

1 Ответ

0 голосов
/ 18 июня 2019

Я ответил на свой вопрос. Я могу считать уникальные записи по критериям имени.

Ниже приведен мой модифицированный код, который собирает все данные в моем диапазоне и подсчитывает соответствующие записи.

Dim lnNumber2 As Long
Dim rnFormula2 As Range


With ActiveSheet
    lnNumber2 = .Range("B5000").End(xlUp).Row
    Set rnFormula2 = .Range("I15:I" & lnNumber2)
    rnFormula2.FormulaR1C1 = _
        "=SUMPRODUCT(((Sheet2!R2C2:R5000C2=Sheet1!RC[-7]))/COUNTIFS(Sheet2!R2C1:R5000C1,Sheet1!R2C1:R5000C1&"""",Sheet2!R2C2:R5000C2,Sheet2!R2C2:R5000C2&""""))"

End With

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...