Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2011, 12:29   #1
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию Как создать "динамический" диапазон условия суммирования для формулы?

Задача слудующая - есть продукты имеющие свой маркетинговый год - у одного он начинкается в мае у другого в августе. Есть таблица где числами от 1 до 12 расписано какой месяц какой номер в маркетинговом году имеет у каждого продукта (А1:М10 в примере)

И есть таблица продаж где обозначены месяца и года продаж по каждому продукту(А13:Y20 в примере)

Нужна формула которая сможет просуммировать продажи по маркетинговому году каждого продукта - продажи 1 полугодия маркетингогвого года и продажи 2 пг маркетингового года...

попытался сделать так:

=СУММПРОИЗВ((ГПР(B16:Y16;$A$3:$M$10 ;ПОИСКПОЗ($A26;$A$3:$A$11;0);ЛОЖЬ)< =6)*$B18:$Y18)

(в ячейке В26 и С26)

не работает .. ГПР видимо не подходит ... как по другому?
Вложения
Тип файла: rar sezon.rar (16.2 Кб, 27 просмотров)
kievlyanin вне форума Ответить с цитированием
Старый 07.09.2011, 15:35   #2
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

так тоже не работает:

=СУММПРОИЗВ(((ИНДЕКС($A$3:$M$10;ПОИ СКПОЗ($A26;$A$3:$A$10;0);ПОИСКПОЗ($ B$16:$Y$16;$A$3:$M$3;0)))<=6)*$B18: $Y18)



хотя конструкция:

=(((ИНДЕКС($A$3:$M$10;ПОИСКПОЗ($A26 ;$A$3:$A$10;0);ПОИСКПОЗ($B$16:$Y$16 ;$A$3:$M$3;0)))<=6)*$B18:$Y18)

сама по себе работает - если протянуть по строке...
kievlyanin вне форума Ответить с цитированием
Старый 07.09.2011, 17:30   #3
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Что такое "маркетинговый год"?

Для первого полугодия:
Код:
=СУММПРОИЗВ(($A25=$A$17:$A$21)*(МЕСЯЦ($B$16:$Y$16)<7)*(ГОД($B$16:$Y$16)=2011)*$B$17:$Y$21)
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 07.09.2011, 17:45   #4
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

календарный год - от января до декабря ... у продукта есть маркетинговый год от начала производства до начала производства .. т.е. год к году сравнивается не по календарным годам а по маркетинговым - это может быть от августа до августа от ноября до ноября и т.д. ... размерность маркетингового года я высталяю в первой табличке - там где единичка это начало года где 12 это его конец... но табличка имеет только 12 столбцов .. вот я пытался своей формулой брать реальный диапазон суммирования с реальным диапазоном условий суммирования и "на лету" изменять значения в диапазоне условий беря их из первой таблички...

смысл моей формулы - заменить названия месяцев на номера месяца по маркетинговому году каждого продукта и затем просуммировать отдельно значения месяцев меньше 7 и больше 6.

вот эта конструкция:

=(((ИНДЕКС($A$3:$M$10;ПОИСКПОЗ($A26 ;$A$3:$A$10;0);ПОИСКПОЗ($B$16:$Y$16 ;$A$3:$M$3;0)))<=6)*$B18:$Y18)

работает когда ее тянеш по строке.

но как только делаеш СУММ или еще что-то + формула массива ессно, то она почему -то суммирует все подряд безотносительно прописанных условий.

Последний раз редактировалось kievlyanin; 07.09.2011 в 17:57.
kievlyanin вне форума Ответить с цитированием
Старый 07.09.2011, 17:55   #5
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

а это:

=СУММПРОИЗВ(($A25=$A$17:$A$21)*(МЕС ЯЦ($B$16:$Y$16)<7)*(ГОД($B$16:$Y$16 )=2011)*$B$17:$Y$21)

просуммирует календарные полугодия продуктов.
kievlyanin вне форума Ответить с цитированием
Старый 07.09.2011, 17:59   #6
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Так?:
Код:
=СУММПРОИЗВ(СУММЕСЛИ(B$15:Y$15;ИНДЕКС(B$6:G$10;
ПОИСКПОЗ(A25;A$6:A$10;0);0);ИНДЕКС(B$17:Y$21;ПОИСКПОЗ(A25;A$17:A$21;0);0)))
Вложения
Тип файла: rar sezon_otv.rar (16.9 Кб, 11 просмотров)
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Старый 07.09.2011, 18:26   #7
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

разрисовал маркетинговые года и полугодия .. первое - более светлое - второе более темное ..

в последней, нижней табличке через СУММ прописал что именно должно просуммироваться.

на 2 календарных года получается до 3-х маркетинговых годов (неполных ессно)


вот может это прояснит ситуацию )
Вложения
Тип файла: rar sezon_v.rar (17.5 Кб, 10 просмотров)
kievlyanin вне форума Ответить с цитированием
Старый 07.09.2011, 18:30   #8
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

Цитата:
Сообщение от DV68 Посмотреть сообщение
Так?:
Код:
=СУММПРОИЗВ(СУММЕСЛИ(B$15:Y$15;ИНДЕКС(B$6:G$10;
ПОИСКПОЗ(A25;A$6:A$10;0);0);ИНДЕКС(B$17:Y$21;ПОИСКПОЗ(A25;A$17:A$21;0);0)))
не .. тут что-то вообще не то происходит .. кажись опять маркетинговые с календарными годами вносят путанницу в ситуацию )
kievlyanin вне форума Ответить с цитированием
Старый 07.09.2011, 18:52   #9
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Тогда так:
Код:
=СУММПРОИЗВ(СУММЕСЛИ($B$15:$Y$15;ОСТАТ(ПОИСКПОЗ(1;ИНДЕКС(B$6:M$10;ПОИСКПОЗ(A24;A$6:A$10;););)
+{-1:0:1:2:3:4};12)+1;ИНДЕКС($B$17:$Y$21;ПОИСКПОЗ($A24;$A$17:$A$21;0);0)))
Вложения
Тип файла: rar sezon_otv2.rar (18.0 Кб, 11 просмотров)
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Старый 07.09.2011, 19:08   #10
kievlyanin
Форумчанин
 
Регистрация: 21.04.2008
Сообщений: 110
По умолчанию

Цитата:
Сообщение от DV68 Посмотреть сообщение
Тогда так:
Код:
=СУММПРОИЗВ(СУММЕСЛИ($B$15:$Y$15;ОСТАТ(ПОИСКПОЗ(1;ИНДЕКС(B$6:M$10;ПОИСКПОЗ(A24;A$6:A$10;););)
+{-1:0:1:2:3:4};12)+1;ИНДЕКС($B$17:$Y$21;ПОИСКПОЗ($A24;$A$17:$A$21;0);0)))

хм ... работает ..

а можно ликбез - что это такое:

+{-1:0:1:2:3:4};12)+1 ??
kievlyanin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ООП Delphi разработка классов для реализации контейнера на основе структуры"упорядоченный динамический список" naffy Помощь студентам 0 28.06.2011 00:22
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
"ОКРВВЕРХ", "ОКР", "ЕСЛИ". Как бы их связать. Каравай Microsoft Office Excel 13 17.02.2010 09:53
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04