Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Shadowmaker от 03.09.2014, 12:31

Название: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: Shadowmaker от 03.09.2014, 12:31
прошу помощи по формуле СУММЕСЛИ()
Есть 2 столбика А и В: в А числовые значения - в В разные данные. Необходимо в ячейке С1 сложить все значения из столбика А, напротив которых в столбике В есть непустые ячейки.

Как должна выглядеть эта формула. Если бы данные в В были всегда одинаковы - всё очевидно... =СУММЕСЛИ(А:А;"данные";В:В) но эти самые данные всегда разные - а формулу =СУММЕСЛИ(А:А;<>"";В:В) эксель не принимает. Что делать?
Название: Re: =СУММЕСЛИ(...
Отправлено: vikttur от 03.09.2014, 13:51
О названии темы из правил:
ЦитироватьТема должна отражать суть вопроса
Название: Re: =СУММЕСЛИ(...
Отправлено: zs от 03.09.2014, 14:52
Здравствуйте, Shadowmaker
Цитата: Shadowmaker от 03.09.2014, 12:31
а формулу =СУММЕСЛИ(А:А;<>"";В:В) эксель не принимает. Что делать?
=СУММЕСЛИ(B1:B5;"<>*";A1:A5)
С уважением, ZS5
Название: Re: =СУММЕСЛИ(...
Отправлено: IKor от 03.09.2014, 14:53
В формуле СУММЕСЛИ(), а также в ряде других формул допускается использовать символы "*" и "?" для создания подходящей маски (* = любая последовательность символов; ? = любой символ)
Т.к. пустые ячейки не содержат ни одного символа, то вам поможет формула
=СУММЕСЛИ(B:B;"*";A:A)
Название: Re: =СУММЕСЛИ(...
Отправлено: IKor от 03.09.2014, 14:56
Пардон, пропустил ключевую частицу НЕ.
Отдавая должное лаконичности формулы предложенной ZS рискну предложить еще вариант
=СУММ(A:A)-СУММЕСЛИ(B:B;"*";A:A)
Название: Re: =СУММЕСЛИ(...
Отправлено: zs от 03.09.2014, 15:17
Здравствуйте, IKor!
Цитата: IKor от 03.09.2014, 14:56
формулы предложенной ZS )
Разрешите уточнить, IKor. ZS5 )
Название: Re: =СУММЕСЛИ(...
Отправлено: Shadowmaker от 03.09.2014, 16:40
Цитата: IKor от 03.09.2014, 14:56
...
У меня получилось что-то вроде СУММЕСЛИ() наоборот:
=СУММ($G$10:$G$1000)-СУММЕСЛИ(N$10:N$1000;"";$G$10:$G$1000)
Название: Re: =СУММЕСЛИ(...
Отправлено: Pelena от 03.09.2014, 16:45
Вариант
=СУММЕСЛИ(B1:B5;"<>";A1:A5)
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: ShAM от 03.09.2014, 16:49
Ребята, помогаете нарушителям! Поправил название темы, как смог.
У меня до варианта Елены было:
=СУММЕСЛИ(B1:B5;"<>"&"";A1:A5)
А вариант от ZS5 у меня игнорирует пустые ячейки.
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: Pelena от 03.09.2014, 16:58
Алишер, прошу прощения, больше не повторится)
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: zs от 04.09.2014, 10:01
Формула =СУММЕСЛИ(B1:B5;"<>*";A1:A5)
была к теме СУММЕСЛИ(
Мне показалось, она звучала так)
прошу помощи по формуле СУММЕСЛИ()
Есть 2 столбика А и В: в А числовые значения - в В разные данные. Необходимо в ячейке С1 сложить все значения из столбика А, напротив которых в столбике В есть ПУСТЫЕ ячейки

Как должна выглядеть эта формула. Если бы данные в В были всегда одинаковы - всё очевидно... =СУММЕСЛИ(А:А;"данные";В:В) но эти самые данные всегда разные - а формулу =СУММЕСЛИ(А:А;<>"";В:В) эксель не принимает. Что делать?
Ну а если наоборот, то мне опять же кажется, подойдет формула

=СУММЕСЛИ(B1:B5;">?";A1:A5)
С уважением, ZS5
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: vikttur от 04.09.2014, 10:27
Да, тема звучала так, но это название функции, но никак не название темы, отражающее суть вопроса.
Цитироватьсложить все значения из столбика А, напротив которых в столбике В есть ПУСТЫЕ ячейки
=СУММЕСЛИ(B:B;"=";A:A)
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: zs от 04.09.2014, 11:01
Здравствуйте, vikttur!
Всякая экономика сводится к экономии ресурсов.
У Вас формула эффективней на 5 знаков. Respect, vikttur!
P.S. Но суть вопрос тажа ;)
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: vikttur от 04.09.2014, 11:05
Я отвечал на вопрос. Значит, не понял, в чем этот вопрос состоит.
Нужно "как наоборот"? Т.е. ненулевые? Или не пустые?
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: ShAM от 05.09.2014, 17:30
У ТС было "непустые":
Цитата: Shadowmaker от 03.09.2014, 12:31Есть 2 столбика А и В: в А числовые значения - в В разные данные. Необходимо в ячейке С1 сложить все значения из столбика А, напротив которых в столбике В есть непустые ячейки.
У ZS5 стало "ПУСТЫЕ":
Цитата: zs от 04.09.2014, 10:01Есть 2 столбика А и В: в А числовые значения - в В разные данные. Необходимо в ячейке С1 сложить все значения из столбика А, напротив которых в столбике В есть ПУСТЫЕ ячейки
Но, по-моему, разобрали оба варианта :)
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: sst от 15.01.2020, 13:39
Ничто из указанного не работает на последнем excel
работает следующее:
=SUMPRODUCT((B1:B5<>"")*(A1:A5))
и следующее(формула массива):
{=SUM((B1:B5<>"")*(A1:A5))}
лучше использовать sumproduct - он быстрее, не заморочнее, а синтаксис такой же как в формуле массива
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: boa от 15.01.2020, 15:31
Цитата: sst от 15.01.2020, 13:39
Ничто из указанного не работает на последнем excel
вы меня аж удивили своим постом...
все работает! (Проверено в Excel 365)
хотя, ваши формулы тоже имеют право на жизнь, но это уже следующий уровень.
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: sst от 15.01.2020, 18:17
Вот сделал небольшое изыскание
Результат интересный. Не всегда очевидный
Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: vikttur от 15.01.2020, 19:41
ЦитироватьНичто из указанного не работает на последнем excel
Да ну? Работает же.
Ваши изыскания не во всем понятны и новичка могут вместо помощи только запутать...

Зачем применять СУММЕЛИМН, если можно СУММЕСЛИ, которая работает быстрее?
Попутно - СУММЕСЛИ умеет определять используемый диапазон, а СУММЕСЛИМН и СУММПРОИЗВ не умеют. Это к чему? Так, как Вы указали диапазоны - неправильно, формулы лопатят все строки листа.

ЦитироватьSUMPRODUCT(($A:$A<>"")*($C:$C)) - Здесь суммирует даже первую строку
пытается умножить на текст из С1, отчего и получается ошибка.

ЦитироватьSUMIFS($C:$C;$A:$A;"*") - Считает все символьные данные, включая формулы
Функция не считает, она суммирует по условию.
Определение "символьные данные", применяемое в примере, некорректно. Число 5 - тоже символ. Данные могут быть числовыми или текстовыми.
"?"  - служебный символ, подразумевается один символ.
"*" - служебный символ, подразумевается текст любой длины, включая нулевую.
"?*" - текст любой длины, исключая нулевую
Так как формула не может возвращать пустоту ("" - не пустота, это текст нулевой длины), то ячейка с формулой тоже принимается в расчет

"Каждой фуфайке свой гвоздик" :)
Например, "<>" и "<>0"  тоже имеют разное назначение, СУММЕСЛИ умеет преобразовывать текстовую запись числа в нормальное число, СУММПРОИЗВ такому не научена. Тонкостей много и говорить, что "формула не работает" можно, но правильно ли такое утверждение (какие данные, как расположены, какая задача решается и т.д.)


Название: Re: =СУММЕСЛИ() с критерием НЕ ПУСТО.
Отправлено: sst от 16.01.2020, 12:34
повторюсь еще раз - ни одна из указанных выше формул не решает задачу, если в столбце с данными стоит не значение а формула (что чаще всего и есть).
почему, я указал чуть выше. Мои изыскания не для новичков, а для понимания, что результат может быть разным, и что ни одна из вышеуказанных формул не решает задачу.