Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Суммирование по определенному условию / 22 сообщений из 22, страница 1 из 1
10.12.2009, 13:44
    #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
10.12.2009, 14:54
    #36359192
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по определенному условию
Наверное, так:
=СУММ(СУММЕСЛИ(B4:B24;H4:H16;C4:C24))
...
Рейтинг: 0 / 0
10.12.2009, 15:07
    #36359224
Суммирование по определенному условию
vikttur,
формула масива нужно ставить {}?
...
Рейтинг: 0 / 0
10.12.2009, 15:19
    #36359277
Суммирование по определенному условию
vikttur,
красиво, только проверки нет, формула же считает по первой таблице и если число во второй таблице будет другим, то не проверит. Так надежней:
=СУММ((СУММЕСЛИ(B4:B24;H4:H16;C4:C24)=I4:I16)*I4:I16) Массив
...
Рейтинг: 0 / 0
10.12.2009, 15:24
    #36359292
Суммирование по определенному условию
vikttur,

не работает
...
Рейтинг: 0 / 0
10.12.2009, 15:26
    #36359301
Суммирование по определенному условию
Гость&Гость,
отлично:), спасибо
...
Рейтинг: 0 / 0
10.12.2009, 15:35
    #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
10.12.2009, 15:44
    #36359361
Суммирование по определенному условию
vikttur,
спасибо, осталось только разобраться что к чему :)
...
Рейтинг: 0 / 0
10.12.2009, 15:52
    #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
10.12.2009, 16:07
    #36359424
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по определенному условию
Где-то так.
СУММЕСЛИ создает массив значений:
Если в диапазоне В есть значение из Н, то суммируются значения из С. Т.к. в В значения уникальны, фактически происходит не суммирование, а вставка одного значения, соответствующего проверяемому коду.
Далее проверяется условие: каждое значение сформированного массива проверяется на равенство значению I - если равно, то I, если нет - то ноль (ЛОЖЬ*I4:I16=0). Так формируется массив для суммирования.
И последнее - СУММ(массив_для_суммирования).
...
Рейтинг: 0 / 0
10.12.2009, 16:11
    #36359440
Djon Player
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по определенному условию
viktturГде-то так.
СУММЕСЛИ создает массив значений:
Если в диапазоне В есть значение из Н, то суммируются значения из С. Т.к. в В значения уникальны, фактически происходит не суммирование, а вставка одного значения, соответствующего проверяемому коду.
Далее проверяется условие: каждое значение сформированного массива проверяется на равенство значению I - если равно, то I, если нет - то ноль (ЛОЖЬ*I4:I16=0). Так формируется массив для суммирования.
И последнее - СУММ(массив_для_суммирования).Спасибо, теперь стало понятно.
Причем ключевое слово ещё, уникальность данных по первому столбцу второй таблицы.
Если бы они были не уникальны, то результат был бы непонятный.
Мне тоже периодически приходиться делать кое-какие сверки таблиц, обычно пользуюсь ВПР.
...
Рейтинг: 0 / 0
10.12.2009, 16:18
    #36359456
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по определенному условию
Не всегда ВПР управится. В подобных задачах - или формула массива, или дополнительные столбцы. Формулы массива тяжелее обычных формул. Иногда лучше одно, иногда другое. Например, если в формуле массива много одинаковых расчетов, для разгрузки лучше использовать доп. столбцы. Это, кстати, применимо и к обычным формулам.
...
Рейтинг: 0 / 0
18.12.2009, 16:31
    #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
18.12.2009, 16:54
    #36374403
_Boroda_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Суммирование по определенному условию
Djon Player,

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

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

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

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

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


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