Страницы: 1
RSS
Подсчет количества уникальных записей по заданным условиям
 
Добрый день!
Помогите пожалуйста с формулой (не макросом). Необходимо подсчитать количество уникальных записей по заданным условия
(Пример: Какое колличество дней пользователь "Аня" использовала ПО "Android" -   ручками посчитал, ответ должен быть - 4)
Если по одному условию то использвал всегда массив, а тут, как то не соображу.

Заранее спасибо!
 
Код
=SUMPRODUCT((B16:B85=B8)*(C16:C85=A7))
 
Не совсем так,
Я немного ошибся в ручном подсчете, результат должен быть - 3. (пользователь "Аня" испльзовала ПО "Андроид"  - 3 дня)
Т.е. необходимо подсчитать колличество уникальных дней при двух условиях, что колонка B содержит "Андроид" и колонка С содержит "Аня"
 
Раньше считал только количество дней по конкретному пользователем по следующей формуле
Код
массив:
1 =СЧЁТ(ЕСЛИ(ЕСЛИ(ПОИСКПОЗ(A16:A85&C16:C85;A16:A85&C16:C85;0)=СТРОКА(A16:A85)-15;C16:C85)=A7;СТРОКА(C16:C85)))

Теперь добавилось дополнительное условие для выбоки - "ПО"
 
Наверняка можно как-то формулами сделать, но мне проще написать свою:
Код
=anja(A16:C85,A7,B8)
Код
Function anja(baza, imja$, os$)
    Dim i&, t$
    baza = baza.Value
    t = imja$ & "|" & os$
    With CreateObject("Scripting.Dictionary"): .comparemode = 1
        For i = 1 To UBound(baza)
            If baza(i, 3) & "|" & baza(i, 2) = t Then .Item(baza(i, 3) & "|" & baza(i, 2) & "|" & baza(i, 1)) = Empty
        Next
        anja = .Count
    End With
End Function

На имена фантазии не хватает уже... :(
 
=СУММ(Ч(ЧАСТОТА(ЕСЛИ((B16:B85=B8)*(C16:C85=A7);ПОИСКПОЗ(A16:A85;A16:A85;);ПОИСКПОЗ(A16:A85;A16:A85;)>0))
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Отработала с корректировками
Код
=СУММ(Ч(ЧАСТОТА(ЕСЛИ((B16:B85=B8)*(C16:C85=A7);ПОИСКПОЗ(A16:A85;A16:A85);ПОИСКПОЗ(A16:A85;A16:A85)>0);0)))
Но тоже считает не правильно
результат получается 4 - сколько раз использовала "Аня" ПО "Андроид"
а должен быть 3 - сколько дней использовала "Аня" ПО "Андроид"
 
anja() проще, и считает правильно.
И не макрос почти :)
 
Ctrl+Shift+Enter - так вводится формула массива.
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Да это мне знакомо, иначе формула массива не заработала совсем.
Результат получается не тот который хотелось бы (не учитывается что даты повторяются, а небходимо просуммировать только колличество уникальных их значений)

Цитата
Hugo написал: anja() проще, и считает правильно. И не макрос почти  
Спасибо огромное за помощь в вопросе и за макрос, только данная табличка - это как пример потребности.
Формулка нужна чтоб потом ретранслировать ее уже на совсем другие выборки с другими вводными данными и с гораздо большими обьемами информации.
 
Покажите, где у меня получается четыре?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Цитата
malikoves написал:
с другими вводными данными и с гораздо большими обьемами информации.
тем более лучше UDF
 
Цитата
Владимир написал: Покажите, где у меня получается четыре?
Был бы ближе, пожал бы руку! Спасибо огромное за помощь!
Просто в первой полученной формулке концовка была "A16:A85;)>0))" и она не работала.
По быстрому попробывал разобраться, и накуралесил..
Страницы: 1
Наверх