MS Excel-我希望根据父列计算唯一值

MS Excel-我希望根据父列计算唯一值

我对 Excel 还很陌生。我需要一些帮助来计算三列中的每一列中相对于父列(图片中的第一列 (A))的唯一值(每次只考虑一个)。你能帮我吗?谢谢!

编辑:如果我做数据透视表,它不会给我单独列的数量,而是最后一列的数量。

源数据:

在此处输入图片描述

转换后的结果数据:

在此处输入图片描述

来源

A   B   C   D
p   d   g   k
p   e   g   k
q   d   h   k
q   f   h   o
r   d   h   o
r   e   i   m
r   f   h   m
s   d   i   n
s   d   i   o
s   f   i   o

结果

A   B   C   D
p   2   1   1
q   2   1   2
r   3   2   2
s   2   1   2

答案1

我们建立一个列列表A唯一标识符并将其放入列中然后执行一组循环来计算其他列中的唯一值:

Sub Macro1()
    Dim N As Long, i As Long
    Dim c As Collection, v As Variant
    Dim M As Long, j As Long, rc As Long
    Dim K As Long

    Columns("A:A").Copy Columns("E:E")
    Range("E:E").RemoveDuplicates Columns:=1, Header:=xlNo

    rc = Rows.Count
    M = Cells(rc, "A").End(xlUp).Row
    N = Cells(rc, "E").End(xlUp).Row

    For i = 1 To N
        v = Cells(i, "E").Text
            For K = 2 To 4
                Set c = Nothing
                Set c = New Collection
                For j = 1 To M
                    If v = Cells(j, "A").Text Then
                        On Error Resume Next
                            c.Add Cells(j, K).Text, CStr(Cells(j, K).Text)
                        On Error GoTo 0
                    End If
                Next j
                Cells(i, K + 4).Value = c.Count
            Next K
    Next i
End Sub

在此处输入图片描述

相关内容