Страницы: 1
RSS
Уникальные значения при множестве доп условий
 
Приветствую
Господа, прошу помощи в решении вопроса.
Попробую сформулировать: из диапазона, нужно получить КОЛИЧЕСТВО уникальных значений, при этом есть ряд дополнительных условий, как день, месяц и т.д.
Файл приложил
Спасибо заранее.
 
UDF. Макросы должны быть разрешены. Не понятно почему уникальных НЕдозвонов должен быть 1, а не 2
Код
Function СЧЁТУНИКЕСЛИМН(rngU As Range, ParamArray Conditions()) As Long
'rngU - диапазон отбора уникальных значений, обязательный
'ПАРЫ аргументов: диапазон_условий1;условие1;диапазон_условий2;условие2...диапазон_условийN;условиеN
'обязательна хотя-бы одна пара
Dim cl As Range
Dim arrFlag() As Boolean
Dim I As Long
On Error Resume Next
With New Collection
    For Each cl In rngU
        ReDim arrFlag(Int(UBound(Conditions) / 2))
        For I = LBound(Conditions) To UBound(Conditions) Step 2
            If rngU.Parent.Cells(cl.Row, Conditions(I).Column).Value Like Conditions(I + 1) Then
                arrFlag(Int(I / 2)) = True
            End If
        Next
        If WorksheetFunction.And(arrFlag) = True Then
            .Add cl, CStr(cl)
            If Err = 0 Then
                СЧЁТУНИКЕСЛИМН = СЧЁТУНИКЕСЛИМН + 1
            Else
                Err.Clear
            End If
        End If
    Next
End With
End Function
Согласие есть продукт при полном непротивлении сторон
 
Sanja, спасибо, затестю. Почему не 2 не дозвона, потому - что если есть дозвон., то не дозвон уже не считается
 
К сожалению работает очень долго и трудоемко. ( Буду искать другой способ
Цитата
Не понятно почему уникальных НЕдозвонов должен быть 1, а не 2
согласен, должно быть 2.  
Изменено: Антон - 12.07.2017 10:49:17
 
Sanja, подскажи пожалуйста, а как сделать так, чтоб еще добавить 1 ячейку в которой если будет 0, то чтоб функция не обрабатывалась, а если любое больше 0 то обрабатывалась? Может так повысится быстродействие? И иногда неправильно считает, на массивах в 20к-30к строк, но пока не могу понять почему.
 
Цитата
Антон написал: работает очень долго и трудоемко
потому что
Цитата
Антон написал: на массивах в 20к-30к строк
В таком случае лучше перейти на классический макрос. Привязать его к какой нибудь кнопке/событию и выполнять при необходимости.

Покажите файл-пример с чуть большим количеством исходных и результирующих данных. 30к конечно не надо, 25-30 строк сойдет
Согласие есть продукт при полном непротивлении сторон
 
Я не понял - тема стала ПЛАТНОЙ?
Согласие есть продукт при полном непротивлении сторон
 
Да, автор просил перенести.
 
В таком случае, автор, озвучьте сроки и бюджет
Согласие есть продукт при полном непротивлении сторон
 
Написал автору в ЛС
Согласие есть продукт при полном непротивлении сторон
 
Заказ свободен
Согласие есть продукт при полном непротивлении сторон
 
Есть решение без макроса, если интересно пишите в личку.
Переговоры... В работе... Готово
Изменено: TheBestOfTheBest - 13.07.2017 13:02:24
Неизлечимых болезней нет, есть неизлечимые люди.
 
исполнитель найден.
Заказ выполнен.
Изменено: Антон - 13.07.2017 17:21:34
Страницы: 1
Наверх