Получил формулу, которая должна сработать:
=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.