Использование СУММПРОИЗВ в Excel с фильтрами

Использование СУММПРОИЗВ в Excel с фильтрами

У меня проблемы с использованием SUMPRODUCTвместе с фильтром. У меня следующая формула:

=SUMPRODUCT(LEN(B3:B7)-LEN(SUBSTITUTE(B3:B7;".";"")))

Мне нужно посчитать, сколько "." находится в диапазоне. Однако, когда я использую некоторые фильтры, он всегда подсчитывает все "." в этом диапазоне, но я хочу, чтобы он подсчитывал только видимые.

Нормальный:

нормальный

После фильтра:

после фильтра

Как я могу это сделать?

решение1

Добавьте условие к вашей SUMPRODUCTформуле:

=SUMPRODUCT((LEN(D3:D8)-LEN(SUBSTITUTE(D3:D8,".","")))*SUBTOTAL(103,OFFSET(D$2,ROW($A$1:$A$6),0)))

ПРОМЕЖУТОЧНЫЙ ИТОГможет игнорировать скрытые строки. В этом случае мы используем , 103потому что он возвращает 1для непустых ячеек, что полезно. Нам нужно изменить его с помощью функции OFFSET, чтобы он возвращал количество как массив, а не как одно значение. Ключевой момент — в выборе диапазонов.

D3:D8должен быть диапазоном, в котором вы хотите подсчитать текст.
D$2должен быть ячейкой непосредственно над этим диапазоном,
$A$1:$A$6может быть в любом столбце, но он должен начинаться в строке 1 и иметь столько же строк, сколько диапазон, в котором вы подсчитываете текст. Я использовал A1:A6просто по привычке и для удобства. Он служит только для того, чтобы дать нам массив для чисел, в которые можно вводить данные, OFFSETчтобы можно было SUBTOTALхорошо играть с SUMPRODUCT.

Шаг 1
Шаг 2

Связанный контент