|
|
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Добрый день! помогите с задачкой. Есть 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))} Пример во вложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 13:44 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Наверное, так: =СУММ(СУММЕСЛИ(B4:B24;H4:H16;C4:C24)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 14:54 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
vikttur, формула масива нужно ставить {}? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 15:07 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
vikttur, красиво, только проверки нет, формула же считает по первой таблице и если число во второй таблице будет другим, то не проверит. Так надежней: =СУММ((СУММЕСЛИ(B4:B24;H4:H16;C4:C24)=I4:I16)*I4:I16) Массив ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 15:19 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
vikttur, не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 15:24 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Гость&Гость, отлично:), спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 15:26 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Гость&Гостьтолько проверки нет, формула же считает по первой таблице и если число во второй таблице будет другим, то не проверит. Так надежней: =СУММ((СУММЕСЛИ(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)) И та, и другая - формулы массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 15:35 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
vikttur, спасибо, осталось только разобраться что к чему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 15:44 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Гость&Гость =СУММ((СУММЕСЛИ(B4:B24;H4:H16;C4:C24)=I4:I16)*I4:I16) Массивклёвая формула, работает, вот только не могу понять как, с массивами формул я не работал раньше. Хотелось бы услышать небольшой комментарий. Например, что является результатом операции СУММЕСЛИ(B4:B24;H4:H16;C4:C24) зачем идёт присвоение =I4:I16 и потом ещё и умножение *I4:I16. Какой результат получается в процессе выполнения присвоения и умножения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 15:52 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Где-то так. СУММЕСЛИ создает массив значений: Если в диапазоне В есть значение из Н, то суммируются значения из С. Т.к. в В значения уникальны, фактически происходит не суммирование, а вставка одного значения, соответствующего проверяемому коду. Далее проверяется условие: каждое значение сформированного массива проверяется на равенство значению I - если равно, то I, если нет - то ноль (ЛОЖЬ*I4:I16=0). Так формируется массив для суммирования. И последнее - СУММ(массив_для_суммирования). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 16:07 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
viktturГде-то так. СУММЕСЛИ создает массив значений: Если в диапазоне В есть значение из Н, то суммируются значения из С. Т.к. в В значения уникальны, фактически происходит не суммирование, а вставка одного значения, соответствующего проверяемому коду. Далее проверяется условие: каждое значение сформированного массива проверяется на равенство значению I - если равно, то I, если нет - то ноль (ЛОЖЬ*I4:I16=0). Так формируется массив для суммирования. И последнее - СУММ(массив_для_суммирования).Спасибо, теперь стало понятно. Причем ключевое слово ещё, уникальность данных по первому столбцу второй таблицы. Если бы они были не уникальны, то результат был бы непонятный. Мне тоже периодически приходиться делать кое-какие сверки таблиц, обычно пользуюсь ВПР. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 16:11 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Не всегда ВПР управится. В подобных задачах - или формула массива, или дополнительные столбцы. Формулы массива тяжелее обычных формул. Иногда лучше одно, иногда другое. Например, если в формуле массива много одинаковых расчетов, для разгрузки лучше использовать доп. столбцы. Это, кстати, применимо и к обычным формулам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2009, 16:18 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Добавлю от себя задачку: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Суть такая: Допустим в столбце A находиться список счетов, в столбце B находятся цифры. Задача, нужно создать формулу суммирования, которая возвратит сумму всех цифр из столбца B соответствующих заданному счёту в столбце A. Задача усложняется тем, что вместо цифр по некоторым ячейкам в столбце B встречается #Н/Д . Если бы их не было, то задача бы решалась просто. К примеру сумма по 30-ым счетам можно было бы посчитать с помощью формулы Код: plaintext Код: plaintext Нужно как-то создать формулу, подозреваю что формулу массива, которая может сосчитать такую сумму без удаления #Н/Д . Понятно, что можно просто удалить все #Н/Д , либо создать вспомогательный столбец являющийся копией столбца B, но без #Н/Д и на основе его делать суммирование, но такое решение не интересно. Требуется решение без создания дополнительных вспомогательных ячеек и без удаления #Н/Д . Из-за малого опыта в работе с формулами массива я сам смог придумать пока лишь такие формулы массива, но к сожалению они работают неправильно: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 16:31 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Djon Player, Можно примерно так: =СУММ(($A$2:$A$8=C2)*ЕСЛИ(ЕОШИБКА($B$2:$B$8);0;$B$2:$B$8)), где в С2 - номер счета (например, 30) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 16:54 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
_Boroda_Djon Player, Можно примерно так: =СУММ(($A$2:$A$8=C2)*ЕСЛИ(ЕОШИБКА($B$2:$B$8);0;$B$2:$B$8)), где в С2 - номер счета (например, 30)Спасибо, классная формула, подошла. Может кто-то посоветует какую-нибудь статейку в которой много разных примеров формул массивов, чтобы попрактиковаться с ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 17:02 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
еще вариант {=СУММ(ЕСЛИ(ЕЧИСЛО(B1:B7);(A1:A7=C2)*B1:B7))} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2009, 00:13 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Djon Player Может кто-то посоветует какую-нибудь статейку в которой много разных примеров формул массивов, чтобы попрактиковаться с ними. Читайте форум - здщесь примеров предостаточно, и самое интересное - большинство из жизни. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2009, 00:14 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
Deggasadеще вариант {=СУММ(ЕСЛИ(ЕЧИСЛО(B1:B7);(A1:A7=C2)*B1:B7))} Да, такой вариант тоже работает, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2009, 17:04 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
По аналогии с вашими формулами написал свою для данного примера: =СУММ((A1:A7=30)*ЕСЛИ(ЕЧИСЛО(B1:B7);B1:B7;0)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2009, 17:16 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
DeggasadDjon Player Может кто-то посоветует какую-нибудь статейку в которой много разных примеров формул массивов, чтобы попрактиковаться с ними. Читайте форум - здщесь примеров предостаточно, и самое интересное - большинство из жизни. Я еще советую не только читать, но и активно тренироваться на практических примерах :)) Как пример, в Вашей формуле можно записать: ЕСЛИ(ЕЧИСЛО(B1:B7);B1:B7) ЕСЛИ(ЕНД(B1:B7);;B1:B7) ЕСЛИ(НЕ(ЕНД(B1:B7));B1:B7) ЕСЛИ(ЕНД(B1:B7)-1;B1:B7) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2009, 22:40 |
|
||
|
Суммирование по определенному условию
|
|||
|---|---|---|---|
|
#18+
vikttur Читайте форум - здесь примеров предостаточно, и самое интересное - большинство из жизни. Я еще советую не только читать, но и активно тренироваться на практических примерах :)) Как пример, в Вашей формуле можно записать: ЕСЛИ(ЕЧИСЛО(B1:B7);B1:B7) ЕСЛИ(ЕНД(B1:B7);;B1:B7) ЕСЛИ(НЕ(ЕНД(B1:B7));B1:B7) ЕСЛИ(ЕНД(B1:B7)-1;B1:B7)[/quot]Ага, спасибо. Думаю, что всё-же лучше из перечисленных формул использовать те, где есть ЕЧИСЛО, т.к. она гарантированно выбирает только числа, а то вдруг где-то будет встречаться не только #Н/Д, но и текст. А конкретно в моём примере можно и то и другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2009, 13:31 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36374426&tid=2178677]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
160ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 500ms |

| 0 / 0 |
