powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Суммирование по определенному условию
22 сообщений из 22, страница 1 из 1
Суммирование по определенному условию
    #36359021
Добрый день! помогите с задачкой. Есть 2 таблицы-прайсы. Таблицу 1 и Табл. 2 нужно сверить по сумме. Проблема только в том, что табл 1 это часть табл. 2 и просто ИТОГО 2-х табл. не будут равны. Условие в табл. 1, это только те ячейки в которых есть значение, (0 и пустая должны отсекаться). Пытаюсь использовать формулу масива:

{=СУММ((ЕСЛИ($C$4:$C$24>0;$B$4:$B$24=$H$4:$H$16;0)*$I$4:$I$16))}

Пример во вложении.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359192
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, так:
=СУММ(СУММЕСЛИ(B4:B24;H4:H16;C4:C24))
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359224
vikttur,
формула масива нужно ставить {}?
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359277
vikttur,
красиво, только проверки нет, формула же считает по первой таблице и если число во второй таблице будет другим, то не проверит. Так надежней:
=СУММ((СУММЕСЛИ(B4:B24;H4:H16;C4:C24)=I4:I16)*I4:I16) Массив
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359292
vikttur,

не работает
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359301
Гость&Гость,
отлично:), спасибо
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359339
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость&Гостьтолько проверки нет, формула же считает по первой таблице и если число во второй таблице будет другим, то не проверит. Так надежней:
=СУММ((СУММЕСЛИ(B4:B24;H4:H16;C4:C24)=I4:I16)*I4:I16) Массив
Естественно, рисовалось по таблице.
Можно и "в лоб":
=СУММ(ЕСЛИ(СЧЁТЕСЛИ(H4:H16;B4:B24)*(ИНДЕКС(C4:C24;ПОИСКПОЗ(B4:B24;B4:B24;0))=ИНДЕКС(I4:I16;ПОИСКПОЗ(B4:B24;H4:H16;0)));C4:C24))
И та, и другая - формулы массива.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359361
vikttur,
спасибо, осталось только разобраться что к чему :)
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359379
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гость&Гость
=СУММ((СУММЕСЛИ(B4:B24;H4:H16;C4:C24)=I4:I16)*I4:I16) Массивклёвая формула, работает, вот только не могу понять как, с массивами формул я не работал раньше.
Хотелось бы услышать небольшой комментарий.
Например, что является результатом операции СУММЕСЛИ(B4:B24;H4:H16;C4:C24)
зачем идёт присвоение =I4:I16 и потом ещё и умножение *I4:I16.
Какой результат получается в процессе выполнения присвоения и умножения.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359424
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то так.
СУММЕСЛИ создает массив значений:
Если в диапазоне В есть значение из Н, то суммируются значения из С. Т.к. в В значения уникальны, фактически происходит не суммирование, а вставка одного значения, соответствующего проверяемому коду.
Далее проверяется условие: каждое значение сформированного массива проверяется на равенство значению I - если равно, то I, если нет - то ноль (ЛОЖЬ*I4:I16=0). Так формируется массив для суммирования.
И последнее - СУММ(массив_для_суммирования).
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359440
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viktturГде-то так.
СУММЕСЛИ создает массив значений:
Если в диапазоне В есть значение из Н, то суммируются значения из С. Т.к. в В значения уникальны, фактически происходит не суммирование, а вставка одного значения, соответствующего проверяемому коду.
Далее проверяется условие: каждое значение сформированного массива проверяется на равенство значению I - если равно, то I, если нет - то ноль (ЛОЖЬ*I4:I16=0). Так формируется массив для суммирования.
И последнее - СУММ(массив_для_суммирования).Спасибо, теперь стало понятно.
Причем ключевое слово ещё, уникальность данных по первому столбцу второй таблицы.
Если бы они были не уникальны, то результат был бы непонятный.
Мне тоже периодически приходиться делать кое-какие сверки таблиц, обычно пользуюсь ВПР.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36359456
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не всегда ВПР управится. В подобных задачах - или формула массива, или дополнительные столбцы. Формулы массива тяжелее обычных формул. Иногда лучше одно, иногда другое. Например, если в формуле массива много одинаковых расчетов, для разгрузки лучше использовать доп. столбцы. Это, кстати, применимо и к обычным формулам.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36374313
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавлю от себя задачку:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
 A  |   B
-----------
 20   |  #Н/Д
 30   |     50 
 20   |  #Н/Д
 20   |    100 
 30   |    200 
 30   |  #Н/Д
 20   |     70 

Суть такая:
Допустим в столбце A находиться список счетов, в столбце B находятся цифры.
Задача, нужно создать формулу суммирования, которая возвратит сумму всех цифр из столбца B соответствующих заданному счёту в столбце A.
Задача усложняется тем, что вместо цифр по некоторым ячейкам в столбце B встречается #Н/Д .
Если бы их не было, то задача бы решалась просто.
К примеру сумма по 30-ым счетам можно было бы посчитать с помощью формулы
Код: plaintext
=СУММЕСЛИ(A:A; 30 ;B:B)
либо формулы массива
Код: plaintext
{=СУММ(ЕСЛИ(A1:A7= 30 ;B1:B7))}
И они вернула бы число 250, но т.к. встречаются #Н/Д , то и сумму покажет #Н/Д .
Нужно как-то создать формулу, подозреваю что формулу массива, которая может сосчитать такую сумму без удаления #Н/Д .
Понятно, что можно просто удалить все #Н/Д , либо создать вспомогательный столбец являющийся копией столбца B, но без #Н/Д и на основе его делать суммирование, но такое решение не интересно.
Требуется решение без создания дополнительных вспомогательных ячеек и без удаления #Н/Д .
Из-за малого опыта в работе с формулами массива я сам смог придумать пока лишь такие формулы массива, но к сожалению они работают неправильно:
Код: plaintext
1.
2.
3.
=СУММ(ЕСЛИ(И(A1:A7= 30 ;B1:B7<>"#Н/Д");B1:B7; 0 ))
=СУММ(ЕСЛИ(И(A1:A7= 30 ;ЕНД(B1:B7));B1:B7; 0 ))
=СУММ(ЕСЛИ(A1:A7= 30 ;ЕСЛИ(B1:B7<>"#Н/Д";B1:B7; 0 ); 0 ))
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36374403
_Boroda_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djon Player,

Можно примерно так:

=СУММ(($A$2:$A$8=C2)*ЕСЛИ(ЕОШИБКА($B$2:$B$8);0;$B$2:$B$8)), где
в С2 - номер счета (например, 30)
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36374426
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Boroda_Djon Player,

Можно примерно так:

=СУММ(($A$2:$A$8=C2)*ЕСЛИ(ЕОШИБКА($B$2:$B$8);0;$B$2:$B$8)), где
в С2 - номер счета (например, 30)Спасибо, классная формула, подошла.

Может кто-то посоветует какую-нибудь статейку в которой много разных примеров формул массивов, чтобы попрактиковаться с ними.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36375027
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще вариант
{=СУММ(ЕСЛИ(ЕЧИСЛО(B1:B7);(A1:A7=C2)*B1:B7))}
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36375028
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player
Может кто-то посоветует какую-нибудь статейку в которой много разных примеров формул массивов, чтобы попрактиковаться с ними.
Читайте форум - здщесь примеров предостаточно, и самое интересное - большинство из жизни.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36378061
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deggasadеще вариант
{=СУММ(ЕСЛИ(ЕЧИСЛО(B1:B7);(A1:A7=C2)*B1:B7))} Да, такой вариант тоже работает, спасибо.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36378106
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По аналогии с вашими формулами написал свою для данного примера:
=СУММ((A1:A7=30)*ЕСЛИ(ЕЧИСЛО(B1:B7);B1:B7;0))
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36378628
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadDjon Player
Может кто-то посоветует какую-нибудь статейку в которой много разных примеров формул массивов, чтобы попрактиковаться с ними.
Читайте форум - здщесь примеров предостаточно, и самое интересное - большинство из жизни.
Я еще советую не только читать, но и активно тренироваться на практических примерах :))
Как пример, в Вашей формуле можно записать:
ЕСЛИ(ЕЧИСЛО(B1:B7);B1:B7)
ЕСЛИ(ЕНД(B1:B7);;B1:B7)
ЕСЛИ(НЕ(ЕНД(B1:B7));B1:B7)
ЕСЛИ(ЕНД(B1:B7)-1;B1:B7)
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36379765
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikttur
Читайте форум - здесь примеров предостаточно, и самое интересное - большинство из жизни.
Я еще советую не только читать, но и активно тренироваться на практических примерах :))
Как пример, в Вашей формуле можно записать:
ЕСЛИ(ЕЧИСЛО(B1:B7);B1:B7)
ЕСЛИ(ЕНД(B1:B7);;B1:B7)
ЕСЛИ(НЕ(ЕНД(B1:B7));B1:B7)
ЕСЛИ(ЕНД(B1:B7)-1;B1:B7)[/quot]Ага, спасибо.
Думаю, что всё-же лучше из перечисленных формул использовать те, где есть ЕЧИСЛО, т.к. она гарантированно выбирает только числа, а то вдруг где-то будет встречаться не только #Н/Д, но и текст. А конкретно в моём примере можно и то и другое.
...
Рейтинг: 0 / 0
Суммирование по определенному условию
    #36380060
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой блин, некорректно теги в предыдущем сообщении поставил, только заметил.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Суммирование по определенному условию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]