Для такого рода проблем это помогает мыслить в терминах массивов.
Если вы можете получить массив (список) чисел в Значениях (столбец D), где Буквы (столбец B) равны "А", а Числа имеют удаленные дубликаты, вы можете просто суммировать массив, чтобы получить ответ.
Это выражение:
(B$2:B$12=F2)
дает массив значений True/False
со значением True
везде, где столбец B = "A". Вот этот:
(C$2:C$12<>C$3:C$13)
дает массив значений True/False
с True
где ячейка в столбце C не равна следующей ячейке. Поскольку ваши дубликаты находятся в последовательных ячейках (прокомментируйте ниже, если это не всегда так), этот массив имеет значение False
где встречаются дополнительные вхождения значения, и, по сути, он отфильтровывает дубликаты. Умножая эти два массива вместе:
(B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)
преобразует значения True/False
в 1 и 0 и дает массив с 1 в позициях, которые мы хотим получить в сумме. Используя этот массив в качестве logical_test
в IF()
и колонке D в качестве value_if_true
IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12)
возвращает массив значений в столбце D, где был 1, с вкраплениями False
где был ноль. Теперь мы можем просто сложить массив. Эта формула, заполненная из G2, дает результаты, показанные ниже.
=SUM(IF((B$2:B$12=F2)*(C$2:C$12<>C$3:C$13)>0,D$2:D$12))
Обратите внимание, что это формула массива, и ее нужно вводить с помощью клавиши CTRL Shift Enter.