Подсчитайте значение Unqiue из ячейки в Excel - PullRequest
0 голосов
/ 07 марта 2019

У меня есть значение в ячейке A2 как India,China,India Australia.Я хочу получить результат в ячейке B2 как India,China,Australia.

Примечание. Я хочу, чтобы формула находила уникальное значение из одной ячейки, находящейся вне диапазона ячейки.Так как столько ответов было получено с помощью countif, можно рассчитать количество ошибок.Я не хочу, чтобы такая вещь, я хочу, чтобы формула для вычисления находила уникальное значение только из одной ячейки.
Пожалуйста, внимательно посмотрите на мой вопрос и предложите ответ.

1 Ответ

0 голосов
/ 07 марта 2019

VBA Distinct UDF

Это пользовательская формула для нахождения отдельных слов в строке слов.

  • Единственными разделителями слов являются запятые и / или пробелы.

Поместить в стандартный модуль VBA

  • Не модуль класса и немодуль листа.
  • Либо добавьте в существующий модуль, либо создайте новый модуль.

Используйте функцию так же, как и другие функции формулы ячейки.

  • =Distinct("a,a,b,c, d e f f f")
    • выход a, b, c, d, e, f
  • A1 = Apples, App Pear Apples Pear Bees, B1 =Distinct(A1)
    • выходApples, App, Pear, Bees

VBA-код

Public Function Distinct(ByVal s As String) As String
    Dim found As Boolean
    Dim f As Variant
    Dim w As Variant
    Dim a() As String
    a = Split("") 'empty array
    For Each w In Split(WorksheetFunction.Trim(Replace(s, ",", " ")), " ")
        found = False
        For Each f In a
            If f = w Then found = True
        Next f
        If Not found Then
            ReDim Preserve a(UBound(a) + 1)
            a(UBound(a)) = w
        End If
    Next w
    Distinct = Join(a, ", ") ' Change to "," to remove space in output.
End Function

Определенное количество слов можно найти по следующей формуле:
=IF( Distinct(A1)="", 0, LEN( Distinct(A1)) - LEN( SUBSTITUTE( Distinct(A1), ",", "")) + 1)
Счетзапятые (и игнорирует пробелы), поэтому он все еще работает, даже если код VBA изменен для вывода a,b,c.

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