превзойти уникальные ценности - PullRequest
0 голосов
/ 25 июля 2011

Я видел много ответов на эти вопросы в Интернете (и на stackoverflow), что-то не работает, когда я пробую решение, которое, кажется, все предлагают.

В основном у меня есть список значений (скажем,в строке 24, столбец от C до U), и я хотел бы создать формулу (диапазон) в строке 25, которая дала бы мне различные значения значений в диапазоне C24: U24.

Я использовал следующую формулу

=INDEX($C$24:$U24,MATCH(0,COUNTIF($B$25:B25,$C$24:$U$24),0))

Не работает, просто возвращает 1-й элемент списка.

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Вам все еще нужно скопировать и вставить формулу в несколько ячеек. В вашем примере $B$25 будет первой ячейкой (из-за этой части формулы: $B$25:B25). Когда вы перетащите эту формулу вниз, она проверит, находится ли значение уже в $B$25:B26 и т. Д.

2 голосов
/ 26 июля 2011

Я знаю, что вы не просили функцию VBA, но в случае, если некоторые читатели захотят узнать, как сделать это через VBA, вот эта функция.Он принимает диапазон ячеек и создает только строку уникальных элементов.Вы также можете добавить разделитель (например, если вы хотите, чтобы они были разделены запятыми).

Function UniqueList(ByVal cell_range As range, _
                    Optional ByVal seperator As String = "") As String

Dim vArray As Variant
Dim result As String
Dim i As Long, j As Long
Dim v As Variant
Dim dictionary As Object
Set dictionary = CreateObject("scripting.dictionary")

vArray = cell_range.Value

For i = 1 To UBound(vArray, 1)
    For j = 1 To UBound(vArray, 2)
        If Len(vArray(i, j)) <> 0 Then
            dictionary(vArray(i, j)) = 1
        End If
    Next
Next

For Each v In dictionary
    result = result & (seperator & v)
Next

If Len(result) <> 0 Then
    result = Right$(result, Len(result) - Len(seperator))
End If

UniqueList = result

End Function

Для тех, кому это нужно: он выгружает значения ячеек в массив вариантов, а затем заполняет словарь каждымкроме пустых ячеек).Так как в словарях хранятся только уникальные ключи, это устраняет дубликаты.Затем я перебираю словарь и создаю строку с каждой записью.Я убираю лишний разделитель в конце, чтобы список был чистым.

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