Вопрос по формулам в 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 шт):

Автор решения: vikttur_Stop_RU_war_in_UA

Формула массива (ввод Ctrl+Shift+Enter):

=СЧЁТ(1/(
     ПОИСКПОЗ(A2:A178;
             ЕСЛИ(C2:C178="Апрель_2024";ЕСЛИ((B2:B178="Графа 6")+(B2:B178="Графа 7");A2:A178))
             ;0)=СТРОКА(A2:A178)-1)
      )

Две ЕСЛИ помогают облегчить работу формулы - обрезают ненужные вычисления. В этих функциях условия можно переставить (в зависимости от того, каких проверок больше)

Логика.

  1. ЕСЛИ(ЕСЛИ...)). Формируем массив, в котором:
  • ЛОЖЬ (данные в строке не проходят по условиям);

  • значения столбца А (в строке условия выполнены).

  1. ПОИСКПОЗ(...). В полученном массиве ищем позиции значений столбца А. При этом формируется новый массив, в котором:
  • #Н/Д - значение в массиве не найдено;

  • номер строки - позиция первого вхождения в массив.

  1. ПОИСКПОЗ(...) = СТРОКА(...). Сравниваем номер строки искомого значения с номерами в массиве. При этом создается новый массив, в котором: #Н/Д, ЛОЖЬ, ИСТИНА. Количество совпадений (ИСТИНА) - это и есть нужное количество уникальных значений.

  2. Для подсчета преобразовываем массив:

    1/{#Н/Д : ЛОЖЬ : ИСТИНА} = {#Н/Д : #ДЕЛ/0! : 1}

  3. Функция СЧЕТ игнорирует ошибки, считает только числовые значения.

→ Ссылка