Я очень новичок в 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 ответ1

0

Мы строим список уникальных столбцов A и помещаем его в столбец E, а затем выполняем набор циклов для подсчета уникальных значений в других столбцах:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .