|
|
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Можно ли просуммировать значения в колонке В таблицы на основании критериев указанных в колонке А (см. приложенный файл) . При этом, в ячейках из колонки D указываются наборы критериев, которые могут задаваться со звездочкой "*" (маска для любого набора сиволов) или через точку с запятой ";" (перечисление конкретных значений, которые также могут задаваться с маской "*"). В примере суммы расчитаны вручную. Есть подозрение, что это можно реализовать используя функцию СУММПРОИЗВ, но смущают точки с запятыми. Заранее спасибо за внимание и ответы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 01:00 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Каждый критерий - в отдельную ячейку, иначе усложнять формулу для "выдергивания частей текста." =СУММПРОИЗВ(--НЕ(ЕОШ(ПОИСК(D9;$A$2:$A$6)))*$B$2:$B$6) Ищет ячейки с текстом D9 (например, К1). Из примера не ясно - например, поиск К1, но не К11 - такой вариант может быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 01:33 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Перечислений может быть достаточно много, поэтому да - строку в ячейке нужно делить. Если К1*, то искать и К1, и К11. Если нужно просто К1, то в условиях вводим К1 без звездочки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 09:48 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
При этом, если в строке поиска введено "К1*;К11", то критерий К11 должен быть учтен только один раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 09:50 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Изначально додумался до такого Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 10:37 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Сложно для понимания - как это на практике выглядит? Может быть, покажете пример, более приближенный к реальному? Я к тому, что, возможно, найдется более простой способ отбора критериев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 10:45 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Критерием служит определенный код. Их порядка тысячи. Могут быть, например кода К10000, К10100,К11111,К20000,К30000 и т.д. В итоговой отчетной таблице пользователю необходимо, например, собрать в одной колонке суммы по кодам: К30000 и К20000, а в другой колонке все кода, начинающиеся с К1. Всего таких колонок около 50-ти. Состав условий для отбора критериев и количества колонок может меняться со временем. Существуют также другие отчетные формы по такому же принципу, поэтому по возможности необходима универсальность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 13:13 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Ambler, Если разнести условия по ячейкам, как и предлагал уважаемый vikttur, то можно проблему решить обычным СУММЕСЛИ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 13:40 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Спасибо за решение, однако если строка условий, например имеет следующий вид: "К1*;К21002;К33113;...(может доходить до 20 и больше составляющих)" то в использовании на практике врядле этот подход окажется удобным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 14:01 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
При таком подходе формулы вряд ли помогут. Тем более, что нужна универсализация. Ведь нужно научить Excel понимать, где целый код, где его часть, где в наборе критериев повторения (например, К1* и К15). Макрос с несколькими циклами, наверное. Видится несколько решений. Разнесение критериев по отдельным ячейкам - однозначно, иначе сначала объединяем, потом разъединяем, сами себе трудности создаем. Если возможно, составить таблицу всех встречающихся критериев. С помощью такой "подпорки" легче делать выборку. Сделать отдльные блоки искомых критериев. "К1*,В2,В3*,С12" хуже, чем отдельно "К1*,В3*" и "В2,С12". Но это мое мнение, не обязательно принимать как аксиому :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2010, 15:10 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Ambler, Мне кажется у вас задача аналогична той, что была у меня и обсуждалась в этой теме . Там так-же задавался набор избранных счетов, по которым нужно было вести расчёт. Единственное что надо переделать немного алгоритм для считывания счетов вида K1*. А сочетания вида K1*, K11 нужно просто не допускать, их обрабатывать макросом к примеру и в данном случае убирать K11 как дублирующий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 11:44 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Подумав родил такую формулу массива: Код: plaintext 1. Где A2:A206 - диапазон счетов, B2:B206 -диапазон сумм J17-O17 - список счетов по которым надо найти сумму, можно использовать маску звёздочка в качестве самого правого символа. Т.е. например K1*, K2*, K3000. В случае когда один и тот-же счёт попадает как в маску, так и в счёт, сумма по такому счёту будет задваиваться (ну или утраивается и т.п.), поэтому нужно выбирать правильно список счетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 14:00 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Немного модифицировал формулу, так как в предыдущей формуле был небольшой косяк, что если в заданном диапазоне счетов A2:A206 в каких-то ячейках не был указан счёт, но приэтом рядом в столбце стояла сумма, то эта сумма тоже подсчитывалась, причем столько раз, сколько пустых ячеек встречалось в диапазоне J17:O17. В новой формуле этот эфект убран. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 15:06 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Djon Player, Придумал ещё вариант формулы массива, который позволяет исключить дублирующиеся повторения счетов в диапазоне J17:O17, т.е. если в этом диапазоне указано и K1* и K10, то сумма по счету K10 сосчитается один раз. Вобщем всё как просил автор вопроса: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 15:37 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Хотя походу предыдущая формула работает неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 15:42 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
То что хочется можно сделать чисто формулами, но понадобиться одна вспом. строка на N ячеек (где N это макс.количество запятых плюс один), а также столько вспом.столбцов, сколько у Вас будет строк с условиями (в примере их три) К1*;К2 К1* К2;К5 но это очень головняковое решение будет... лучше не морочить себе и людям голову и немного иначе организовать данные... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.01.2010, 16:46 |
|
||
|
СУММПРОИЗВ со сложным условием
|
|||
|---|---|---|---|
|
#18+
Привожу пример с использованием формулы из моего сообщения от 22 янв 10, 15:06. В него так-же включен макрос, который убирает дублирующие счета в условиях суммирования. Т.е. если в условии суммирования присутствует как счёт К1, так и К1*, то К1 удаляется как дублирующий. Если в качестве условий суммирования задано *, то остальные условия так-же удаляются. Принцип работы такой, набрать в условиях суммирования перечень счетов. Формула автоматически находит сумму. Но т.к. формула не проверяет условий дублирования счетов, то на всякий случай нажать кнопку удаляющую лишние счета из условий суммирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2010, 17:06 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=36415349&tid=2178565]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 467ms |

| 0 / 0 |
