Формула подсчета уникальных значений в Excel с пробелами - Countif показывает ошибку ограничения символов - PullRequest
0 голосов
/ 04 октября 2019

Я должен проверить, если в вертикальном массиве из 9 ячеек одинаковы два или более (до 9 ячеек) комментариев, остальные могут быть пустыми. Если они одинаковы, показывает TRUE else FALSE.

Формула, с которой я работал, приведена ниже и отлично работает. Я использовал Sumproduct и CountIF вместе, чтобы решить эту проблему, но так как CountIF имеет ограничение в 255 символов, любой комментарий выше ограничения дает мне ошибку # N / A .

=SUMPRODUCT(($DU$3:$DU$11<>"")/COUNTIF($DU$3:$DU$11,$DU$3:$DU$11&""))=1

Я ищу обходной путь CountIF в моей перечисленной формуле, который не имеет ограничение в 255 символов и может иметь больший текст. Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 04 октября 2019

Получил формулу, которая должна сработать:

=SUM(IF(DU3:DU11<>"",IF(DU3:DU11=TRANSPOSE(DU3:DU11),1,0),0))=COUNTA(DU3:DU11)

Примечание: Это формула массива, которую необходимо подтвердить с помощью Ctrl Сдвиг Введите

Он вернет FALSE, если будут какие-либо повторяющиеся значения. Он вернет TRUE, если дубликаты не используются.


Другой вариант - использовать UDF, возможно, ниже:

Function UniqueVals(rng As Range) As Boolean

Dim dict As Object: Set dict = CreateObject("Scripting.Dictionary")
Dim arr As Variant, x As Long
arr = rng.Value
For x = LBound(arr) To UBound(arr)
    If arr(x, 1) <> "" Then
        If dict.Exists(arr(x, 1)) Then
            UniqueVals = False
            Exit For
        Else
            UniqueVals = True
            dict.Add arr(x, 1), 1
        End If
    End If
Next x

End Function

Назовите выше, как=UniqueVals(DU3:DU11) и он вернет TRUE, если все значения являются уникальными. Он вернет FALSE, если есть какие-либо дубликаты.


Наткнулся на этот старый пост тоже на SO.

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