Я использую формулу, основанную на SUMPRODUCT
, SUBTOTAL
и OFFSET
. Включить подсчет видимых строк только с критериями. Я пробую это на простых данных образца, которые следующим образом. Данные начинаются с B4
в диапазоне B4:B12
Заголовок B3:
B Column
HD
2
2
4
6
2
1
8
9
2
Формула:
=SUMPRODUCT((B4:B12=B4)*(SUBTOTAL(103,OFFSET(B4,ROW(B4:B12)-MIN(ROW(B4:B12)),0))))
Это дает правильный результат 4 отсчетов для значения 2.
Я пошел на оценку формулы, чтобы полностью понять ее логику. Я мог бы понять большую часть его логики, но некоторые шаги мне не совсем понятны. Я воспроизводлю шаги оценки ниже с моими комментариями.
Шаг -1
=SUMPRODUCT(({2;2;4;6;2;1;8;9;2}=2)*(SUBTOTAL(103,OFFSET(B4,ROW(B4:B12)-MIN(ROW(B4:B12)),0))))
OK
Шаг -2
=SUMPRODUCT(({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE})*(SUBTOTAL(103,OFFSET(B4,ROW(B4:B12)-MIN(ROW(B4:B12)),0))))
OK
ШАГ-3
=SUMPRODUCT(({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE})*(SUBTOTAL(103,OFFSET(B4,ROW(B4:B12)-MIN(ROW(B4:B12)),0))))
OK
STEP-4
=SUMPRODUCT(({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE})*(SUBTOTAL(103,OFFSET($B$4,{4;5;6;7;8;9;10;11;12}-MIN({4;5;6;7;8;9;10;11;12}),0))))
OK
STEP-5
=SUMPRODUCT(({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE})*(SUBTOTAL(103,OFFSET($B$4,{4;5;6;7;8;9;10;11;12}-4),0))))
OK
STEP-6
=SUMPRODUCT({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}*(SUBTOTAL(103,OFFSET($B$4,{0;1;2;3;4;5;6;7;8},0))))
Почему {0;1;2;3;4;5;6;7;8}
??
STEP-7
=SUMPRODUCT({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}*(SUBTOTAL(103,{#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;})))
Почему {#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;}
??
ШАГ-8
=SUMPRODUCT({TRUE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE}*({1;1;1;1;1;1;1;1;1}))
Как 1
вместо #VALUE!
ШАГ-9
=SUMPRODUCT({1;1;0;0;1;0;0;0;1})
OK
Шаг -10
4
OK
У меня нет полной ясности по следующим пунктам
ШАГ-6: Почему {0;1;2;3;4;5;6;7;8}
ШАГ-7: Почему {#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;}
ШАГ-8: Как 1
вместо #VALUE!
Надеюсь, кто-то помогает прояснить логику этих упомянутых мест. Пожалуйста, прости меня за то, что попросил прояснить такой тривиальный вопрос.