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

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Добавил файл-пример
 
=СУММПРОИЗВ(--(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(2;СМЕЩ($A$2:$A$31;СТРОКА($2:$31)-СТРОКА($1:$1)-1;0;1))*(СТРОКА($2:$31)=ПОИСКПОЗ($A$2:$A$31;$A:$A;0))))

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, Есть небольшой косячок, если включен фильтр "ИМЯ" то его не учитывает :cry:
Можно ещё пользовательской функцией
Код
Public Function КОЛИЧ_ВИДИМ(ЯЧЕЙКА As Range) As Long
Dim a As Range
Set Dict = CreateObject("Scripting.Dictionary")
For Each a In ЯЧЕЙКА
    If a.Rows.Hidden = False Then If Not Dict.Exists(a.Value) Then Dict.Add a.Value, ""
Next a
КОЛИЧ_ВИДИМ = Dict.Count
End Function
Изменено: Msi2102 - 06.09.2021 01:58:27
 
Msi2102, спасибо. Не обратил внимание на текст. Формула с учётом просто значений:
=СУММПРОИЗВ(--(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;СМЕЩ($A$2:$A$31;СТРОКА($2:$31)-СТРОКА($1:$1)-1;0;1))*(СТРОКА($2:$31)=ПОИСКПОЗ($A$2:$A$31;$A:$A;0))))

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan, а как можно исправить формулу, чтобы при наличии пустых ячеек, она работала, а не выдавала сообщение #ЗНАЧ?
Изменено: vikttur - 05.09.2021 12:12:05
 
Цитата
Андрей Капитунян написал: чтобы при наличии пустых ячеек, она работала
Покажите в файле-примере, какой должен быть результат работы формулы "при наличии пустых ячеек".

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Большое вам спасибо, что помогаете. Пример в файле
Изменено: vikttur - 05.09.2021 13:30:36
 
Андрей Капитунян, массивная:
=СУММПРОИЗВ(--ЕСЛИОШИБКА(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;СМЕЩ($A$2:$A$31;СТРОКА($2:$31)-СТРОКА($1:$1)-1;0;1))*(СТРОКА($2:$31)=ПОИСКПОЗ($A$2:$A$31;$A:$A;0));0))
Изменено: JayBhagavan - 05.09.2021 13:39:57

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
Msi2102 написал:  As LongDim a As Range
долго не мог понять, что за тип переменных такой LongDim (надо Dim a As Range перенести вниз на новую строку)
 
New, спасибо, поправил. Вроде копировал из файла, может и там слепились, утром проверю :)  
 
Объясните, пожалуйста, почему конкретно в прикрепленном примере при выборе в фильтре дата "Август", формула не считает все значения
 
Андрей Капитунян, данная формула не годится под представленные Вами последние данные. Используйте УДФ от Msi2102.
Update...
Нашёл на просторах тырнета формулу массива:
=СУММ(ЕСЛИ(ЧАСТОТА(ЕСЛИ(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(3;СМЕЩ(A2;СТРОКА(A2:A1000)-СТРОКА(A2);;1)); ЕСЛИ(A2:A1000<>"";ПОИСКПОЗ("~"&A2:A1000;A2:A1000&"";0)));СТРОКА(A2:A1000)-СТРОКА(A2)+1);1))
Источник. Поиск.
Изменено: JayBhagavan - 06.09.2021 03:58:17

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Спасибо огромное еще раз. Находил почти такую же формулу массива, но в ней были ошибки, не смог понять как исправить. Благодаря вам всё заработало. Спасибо огромное еще раз.
 
ну и макросы для полноты
Изменено: New - 06.09.2021 04:17:29
Страницы: 1
Наверх