0

在 Excel 中,我已将客户分类为群组 (mmm-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

一个示例数据范围是第一张图片,我试图将下面的图片作为输出

4

2 回答 2

0

你也可以试试:

在此处输入图像描述

这是下面的代码:

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

我希望这对你有用!

于 2019-02-16T15:13:26.663 回答
0

这是 Excel 工作表的简单计数公式。

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

你可以从那开始,但你需要添加一些条件;例如,列需要属于AB,并且每月列需要非零。将 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)))

在此处输入图像描述

于 2019-02-16T22:10:10.167 回答