Вопрос по формулам в Excel. Нужно посчитать количество уникальных записей с условием из других колонок
Имеются записи в олонках от A до C, нужно посчитать количество уникальных записей в колонке A с условием что в колонке B стоит запись "Графа 6" ИЛИ "Графа 7", а также по колонке C "Апрель_2024".
Написал вот такие формулы:
Данная формула выдает не правильное количество 36.4 (в приложенной таблице выделено зеленым)
=СУММПРОИЗВ((($B$2:$B$178="Графа 6")+($B$2:$B$178="Графа 7"))*($C$2:$C$178="Апрель_2024")*(1/СЧЁТЕСЛИ($A$2:$A$178;$A$2:$A$178)))
Эта формула массива, выдает правильное количество 82, без дублей в колонке A (но тут не учитываются "Графа 6" ИЛИ "Графа 7"
=СУММ(ЕСЛИ(ИЛИ(B2:B178="Графа 6";B2:B178="Графа 7";C2:C178="Апрель_2024");(1/СЧЁТЕСЛИ($A$2:$A$178;$A$2:$A$178));0))
Эта формула обычная (не массив), выдает тот же результат что и выше (формула массива)
=СУММПРОИЗВ(((C2:C178="Апрель_2024"))*(1/СЧЁТЕСЛИ($A$2:$A$178;$A$2:$A$178)))
Обе формулы закрашены желтым в приложенной таблице
В общем есть и другие формулы в колонке G, приложенной таблицы, но результат в виде цифры 76, не получается. Для примера вывел в приложенной таблице в колонку M все записи из колонки A (которые имеют запись "Графа 6" ИЛИ "Графа 7" в колонке B) и закрасил повторяющиеся записи, а в колонке P вывел только уникальные записи из колонки M (без дублей), все это сделал для показа количества уникальных записей 76 шт., именно этого результата нужно добиться.
Таблицу прикладываю
Помогите пожалуйста формулу поправить или написать
Ответы (1 шт):
Формула массива (ввод Ctrl+Shift+Enter):
=СЧЁТ(1/(
ПОИСКПОЗ(A2:A178;
ЕСЛИ(C2:C178="Апрель_2024";ЕСЛИ((B2:B178="Графа 6")+(B2:B178="Графа 7");A2:A178))
;0)=СТРОКА(A2:A178)-1)
)
Две ЕСЛИ
помогают облегчить работу формулы - обрезают ненужные вычисления. В этих функциях условия можно переставить (в зависимости от того, каких проверок больше)
Логика.
- ЕСЛИ(ЕСЛИ...)). Формируем массив, в котором:
ЛОЖЬ (данные в строке не проходят по условиям);
значения столбца А (в строке условия выполнены).
- ПОИСКПОЗ(...). В полученном массиве ищем позиции значений столбца А. При этом формируется новый массив, в котором:
#Н/Д - значение в массиве не найдено;
номер строки - позиция первого вхождения в массив.
ПОИСКПОЗ(...) = СТРОКА(...). Сравниваем номер строки искомого значения с номерами в массиве. При этом создается новый массив, в котором: #Н/Д, ЛОЖЬ, ИСТИНА. Количество совпадений (ИСТИНА) - это и есть нужное количество уникальных значений.
Для подсчета преобразовываем массив:
1/{#Н/Д : ЛОЖЬ : ИСТИНА} = {#Н/Д : #ДЕЛ/0! : 1}
Функция
СЧЕТ
игнорирует ошибки, считает только числовые значения.