Страницы: 1
RSS
Подсчет количества уникальных значений по условию
 
Здравствуйте.
Прошу помочь - нужно рассчитать количество уникальных позиций по условию. Пример прилагаю.
 
Как по мне так уникальных только 3, другие неуникальны :)
Простейшая UDF на коллекции решает проблему, но думаю UDF не вариант?
Код
Function uniq(r)
    Dim col As New Collection, c
    r = r.Value: On Error Resume Next
    For Each c In r
    col.Add Trim(c), Trim(c)
    Next
    On Error GoTo 0: uniq = col.Count
End Function

Кстати если цикл собрать в одну строку - результат меняется! Интересно почему?
P.S. Причём если собрать только все 3 строки...
Изменено: Hugo - 20.02.2020 18:40:29
 
Цитата
Hugo написал:
Простейшая UDF на коллекции решает проблему, но думаю UDF не вариант?
Нет, UDF не вариант :) .
 
Если Вы уверены что UDF не работают с xlsx - это заблуждение.
 
Я не это имел ввиду. А то, что хотел бы решить проблему средствами Excel, а не программированием. Я не программист.
 
Ну тут уже больше ничего не нужно программировать, нужно только поместить в файл и применять как обычную функцию, из раздела "Определённые пользователем". Если код в надстройке (ну например уже что-то используете), то и макросы разрешать не обязательно.
 
Скажите, а можно модернизировать формулу uniq® так чтобы для подсчета уникальных значений можно было бы не напрямую ссылаться на массив, а указывать ссылку на массив через значения параметров, по которым определяется массив (как в СУММЕСЛИМН).
 
Код
=СУММ(--(ЧАСТОТА((B2:B14=2)*ПОИСКПОЗ(C2:C14;C2:C14;);(B2:B14=2)*ПОИСКПОЗ(C2:C14;C2:C14;))>0);-1)
Алексей М.
 
Спасибо!
Страницы: 1
Наверх