同类群组中分组的数据集中的唯一出现次数

时间:2019-02-15 22:15:47

标签: excel excel-formula countif sumproduct

在Excel中,我已经将客户分类为同类群组(yy-yy),现在有了每月收益表(250行客户交易记录),我希望在几个月内获得唯一的同类交易数。我一直无法从每月的总交易过渡到该月的唯一同类群组交易(不包括回头客)。

这些是我尝试过的功能的示例:

我尝试过= SUM(IF(FREQUENCY(IF(A $ 2:A $ 15 = D2,MATCH(B $ 2:B $ 15,B $ 2:B $ 15,0))),ROW(B $ 2:B $ 15)-ROW(B $ 2)+1),1)) 这使我成为同类群组中的唯一成员

我还使用了= COUNTIFS(Worksheet1!$ F $ 2:$ F $ 247,$ H2,INDEX(Worksheet1!$ H $ 2:$ AQ $ 247,,MATCH(J $ 1,Worksheet1!$ H $ 1:$ AQ $ 1,0)),“> 0”)

这仅对每个队列的整个计划中发生的交易进行计数,但不按唯一计数进行过滤。

非常感谢您的帮助!

https://imgur.com/cpwcr4s

An example data range is first image, and I am trying to get to the image below as the output

2 个答案:

答案 0 :(得分:0)

您也可以尝试:

enter image description here

这是下面的代码:

Public Function CountDiff(valor, referencia)

    'valor = "A"
    'referencia = the range of the month that contains Numbers

    Dim coleccion As New Collection

    For Each celda In referencia

        If Len(celda.Value) > 0 Then

            If IsNumeric(celda.Value) Then

                If Range("b" & celda.Row) = valor Then

                    coleccion.Add Range("c" & celda.Row) & Range("a" & celda.Row) &     Range("b" & celda.Row) & Range("c" & celda.Row)
                End If
            End If
        End If

    Next

    CountDiff = GetUniqueCount(coleccion)

End Function

Private Function GetUniqueCount(aFirstArray)
    Dim arr As Collection
    Set arr = New Collection

    On Error Resume Next
        For Each a In aFirstArray

            arr.Add a, CStr(a)
        Next
    On Error GoTo 0
    GetUniqueCount = arr.Count
End Function

我希望这对您有用!

答案 1 :(得分:0)

这是Excel工作表的简单“计数唯一”公式。

'unique count of column A
=SUMPRODUCT(1/COUNTIF(A2:A11, A2:A11))

您可以从此开始,但是您需要添加一些条件。例如 Group 列必须属于 A B ,并且每月列必须为非零。将COUNTIF分母更改为COUNTIFS并添加条件,将除法的分子更改为相同条件的逻辑确定,将分母的反数添加到分母以避免#DIV / 0!错误。

'unique count of column A where Group=G7 and January is non-zero
=SUMPRODUCT((($B$2:$B$999=$G7)*(C$2:C$999>0))/(COUNTIFS($A$2:$A$999, $A$2:$A$999, $B$2:$B$999, $G7, C$2:C$999, ">0")+($B$2:$B$999<>$G7)+(C$2:C$999=0)))

enter image description here