Добрый день!
Необходимо произвести подсчет значений за определенный период.
Использую формулу:
=СУММПРОИЗВ(($C$13:$C$19>=$B$1)*($C$13:$C$19<=$C$7)*($B$13:$B$19=B8)*($A$13:$A$19<>""))
В ячейке В8 - указано наименование по которому необходим подсчет АО "Фирма".
Проблема в том, что в таблице имеются разные наименования:
- АО "Фирма" ген.подряд ООО "Рога и копыта"
- АО "Спец" суб.подряд АО "Фирма"
и при этом необходимо подсчитать все ячейки где указано АО "Фирма"
пробовал изменить код на:
=СУММПРОИЗВ(($C$13:$C$19>=$B$1)*($C$13:$C$19<=$C$7)*($B$13:$B$19="*Фирма*")*($A$13:$A$19<>""))
не работает.
Как нужно прописать значение в формуле, чтобы подсчет был по нужной части слова "Фирма"?
Пример во вложении.
Здравствуйте
Вот эту часть формулы (B14:B20="*Фирма*")
замените на ЕЧИСЛО(ПОИСК(B8;B14:B20))
Т. е. вместо формулы =СУММПРОИЗВ(($C$14:$C$20>=$B$1)*($C$14:$C$20<=$C$7)*($B$14:$B$20="*Фирма*")*($A$14:$A$20<>""))
должна быть формула =СУММПРОИЗВ((C14:C20>=B1)*(C14:C20<=C7)*ЕЧИСЛО(ПОИСК(B8;B14:B20))*(A14:A20<>""))
Спасибо работает, правда не понятно как)))
Цитата: alfatboy от 11.03.2022, 10:01...работает...не понятно как)))
:)
Функция ПОИСК() находит первое вхождение искомого текста (в ячейке В8 текст "
АО "Фирма"") в просматриваемом массиве (
B14:B20)
При этом возвращается массив значений
{1:1:1:1:1:1:22}, т.к. в ячейках
B14:B19 текст "
АО "Фирма"" будет найден на первой позиции, а в ячейке
В20 - на 22-й
В14: АО "Фирма"В15: АО "Фирма"В16:АО "Фирма"В17: АО "Фирма"В18: АО "Фирма" ген.подряд ООО "Рога и копыта"
В19: АО "Фирма" ген.подряд ООО "Рога и копыта"
В20: АО "Спец" суб.подряд
АО "Фирма""
Далее функция ЕЧИСЛО() преобразует массив
{1:1:1:1:1:1:22} в массив
{ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА}, т.к. во всех ячейках поиска есть вхождения искомого текста и есть ЧИСЛА позиций вхождения
Далее функция СУММПРОИЗВ()
(можно также использовать и функцию СУММ(), но в этом случае формулу необходимо будет ввести как формулу массива нажатием сочетаний клавиш Ctrl+Shift+Enter), преобразовывает массив
{ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА:ИСТИНА} в массив
{1:1:1:1:1:1:1} , т. к. значение
ИСТИНА эквивалентно значению
1Ну и наконец, перемножив все массивы в формуле, функция СУММПРОИЗВ() возвращает их сумму