Excel Как считать значения Dynami c для дубликатов - PullRequest
0 голосов
/ 04 апреля 2020

У меня возникли проблемы с поиском решения,

Я хочу подсчитать дублирование в строке, в строке 100 столбцов. Я просто хочу посчитать, сколько дупликаций по всему ряду.

Например,

1,2,3,1,4,9,2,9,1,4

Я просто хочу посмотреть, сколько раз появляется один и тот же набор номеров.

1 = 3
2 = 2 
3 = 0
4 = 2
9 = 2

Например, 3 + 2 + 0 + 2 + 2 = 9

В этой строке 9 дубликатов. ie одно и то же значение отображается более одного раза. Однако значение равно Dynami c.

Ответы [ 3 ]

1 голос
/ 04 апреля 2020

Если у вас есть O365 с функцией UNIQUE, вы можете использовать:

=COUNT(A1:J1)-COUNT(UNIQUE(A1:J1,TRUE,TRUE))

enter image description here

1 голос
/ 04 апреля 2020

Другой способ

=COUNT(A1:J1)-SUMPRODUCT(--(FREQUENCY(A1:J1,A1:J1)=1))

или

=SUMPRODUCT(--(COUNTIF(A1:J1,A1:J1)>1))
1 голос
/ 04 апреля 2020

Функция VBA, представленная ниже, представляет собой UDF, что означает, что она похожа на обычную функцию листа Excel, но предназначена для выполнения именно того, что вы хотите. Установите его в стандартный кодовый модуль.

Function CountDuplicates(Rng As Range) As Integer
' set a Reference to "Microsoft Scripting Runtime"

    Dim Fun As Integer                      ' function return value
    Dim Uniques As Scripting.Dictionary     ' list of occurrences
    Dim Arr As Variant                      ' array of all values
    Dim C As Long

    Set Uniques = CreateObject("Scripting.Dictionary")
    Arr = Rng.Value
    With Uniques
        For C = 1 To UBound(Arr, 2)
            If Not IsEmpty(Arr(1, C)) Then
                If .Exists(Arr(1, C)) Then
                    .Item(Arr(1, C)) = .Item(Arr(1, C)) + 1
                Else
                    .Add Arr(1, C), 0
                End If
            End If
        Next C

        For C = 0 To .Count - 1
            Fun = Fun + .Items(C)
        Next C
    End With

    CountDuplicates = Fun
End Function

Стандартный кодовый модуль - это тот, который вы должны добавить в свой проект. Его имя по умолчанию будет похоже на Module1 , но вы можете изменить его на что угодно (неправильные имена синтаксиса будут отклонены). Вызовите функцию из рабочего листа, введя ее вызов в любой ячейке, например.

= CountDuplicates(A2:DD2)

Эта функция вернет количество всех дубликатов, подсчитанных в определенном диапазоне, за исключением уникальных значений. Посмотри на код. Когда элемент обнаружен впервые, против него записывается значение 0. После этого при каждом повторном обнаружении 1 добавляется к числу уже найденных повторений. В конце все значения будут сложены, чтобы вернуть общее количество. Этот метод гарантирует, что все первые вхождения будут засчитаны как 0 (то есть не засчитаны). В возвращаемую сумму включаются только повторы.

Как и в случае с другими функциями Excel, результат будет отображаться в ячейке, содержащей формулу. Вы можете скопировать эту формулу, как и любую другую, то есть оригинал, указанный выше, должен быть в строке 2. Если вы вставите ее в другом месте, рассмотрите использование абсолютной адресации для определения диапазона действия.

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