Страницы: 1
RSS
Распределение плана по группам. При отсутствии фактических показателей брать плановые
 
Добрый день!
Помогите пожалуйста допилить формулу (пример во вложении), чтобы на листе "План по продуктам" (в желтых ячейках) подтягивался план из листа "План по группам".

Ситуация вкратце: Есть список групп и продуктов и есть план и факт по ним. План есть только по группам и его нужно распределить, согласно факта, по продуктам. Но есть ситуации, когда факта по продуктам нет (ну не собирали урожай раньше). И поэтому должно браться значение из плана по группе.
Надеюсь понятно объяснил)))

Спасибо оргомное заранее!
 
kuralex86, а как разбить группу на подгруппы какая логика?
и название темы с нарушениями - модераторы скажут вам об этом, но уже чуть позже, советую тут предложить нормальное название
Не бойтесь совершенства. Вам его не достичь.
 
kuralex86, приветствую

Подстроился под имеющиеся формулы, так понимаю вы в них ориентируетесь и не стал ничего менять, просто добавил формулу для аргумента значение_если_ошибка

Скрытый текст

Я такой себе фантазер по названиям тем, но тем не менее:
"Вложенный ВПР. Возвращение плана при отсутствии факт."
Изменено: Vladimir K - 21.09.2020 09:56:35
 
Владимир, спасибо!

Да, я более менее в этих формулах разбираюсь. Но я буду благодарен, если Вы предложите какой-то другой вариант, как можно обыграть эту ситуацию.
 
kuralex86, тут дело не в обыгрывании, а в структуре данных (по мне, так немного не удобно, хотя архитектура ощущается)

Если объём в таблицах не велик, то:
  1. Построить всё на "Умных таблицах"
  2. Консолидировать план именно по "Product" (можно привлечь PQ запрос с отдельной таблицей)
  3. Привлечь комбинацию ИНДЕКС+ПОИСКПОЗ (личное предпочтение взамен ВПР)
Я в вопросах Excel ещё "молод" по этому прислушивался бы к более опытным обывателям форума
 
kuralex86, не уверен что правильно понял, попробуйте в C5 и протянуть:
Код
=ИНДЕКС('План по группам'!$1:$1048576;ПОИСКПОЗ(ИНДЕКС(Продукты!$C:$C;ПОИСКПОЗ('План по продуктам'!$B5;Продукты!$D:$D;0);1);'План по группам'!$A:$A;0);ПОИСКПОЗ(C$4;'План по группам'!$2:$2;0))*

ЕСЛИ(ИЛИ(ЕОШ(ИНДЕКС('Факт выпуска'!$E:$E;ПОИСКПОЗ($B5;'Факт выпуска'!$B:$B;0);1));ЕСЛИОШИБКА(ИНДЕКС('Факт выпуска'!$E:$E;ПОИСКПОЗ($B5;'Факт выпуска'!$B:$B;0);1);0)=0);1;ИНДЕКС('Факт выпуска'!$E:$E;ПОИСКПОЗ($B5;'Факт выпуска'!$B:$B;0);1))
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, я вставил формулу, но в Вашем случае получается, что когда не было выпуска, все равно яблоки попадают в план, должно быть 0.
 
Цитата
kuralex86 написал:
Но есть ситуации, когда факта по продуктам нет (ну не собирали урожай раньше). И поэтому должно браться значение из плана по группе.
это тогда что значит?
Не бойтесь совершенства. Вам его не достичь.
 
Да верно, но яблоки входят в группу фрукты, и соотвественно 20 тонн должны распределиться между Груши, Апельсины, Мандарины.
Общее кол-во плана по группам должно быть таким же и в разбивке по продуктам.
А сейчас оно больше за счет яблок на 20 тонн.
 
kuralex86,
Код
=ИНДЕКС('План по группам'!$1:$1048576;ПОИСКПОЗ(ИНДЕКС(Продукты!$C:$C;ПОИСКПОЗ('План по продуктам'!$B5;Продукты!$D:$D;0);1);'План по группам'!$A:$A;0);ПОИСКПОЗ(C$4;'План по группам'!$2:$2;0))*

ЕСЛИОШИБКА(ЕСЛИ(ЕОШ(ИНДЕКС('Факт выпуска'!$E:$E;ПОИСКПОЗ($B5;'Факт выпуска'!$B:$B;0);1));1;ИНДЕКС('Факт выпуска'!$E:$E;ПОИСКПОЗ($B5;'Факт выпуска'!$B:$B;0);1));1)
Не бойтесь совершенства. Вам его не достичь.
 
К сожалению не работает(((
 
kuralex86, у меня работает (приложил файл).
Когда пишите, что не работает приводите доводы или указывайте что конкретно - а то не работает - в след раз напишу просто: "ок. у меня работает"
Изменено: Mershik - 21.09.2020 12:46:45
Не бойтесь совершенства. Вам его не достичь.
 
Точно такая же формула, но у меня встает значение 20 в яблоках:
=INDEX('План по группам'!$1:$1048576,MATCH(INDEX(Продукты!$C:$C,MATCH('План по продуктам'!$B5,Продукты!$D:$D,0),1),'План по группам'!$A:$A,0),MATCH(C$4,'План по группам'!$2:$2,0))*
IFERROR(IF(ISERR(INDEX('Факт выпуска'!$E:$E,MATCH($B5,'Факт выпуска'!$B:$B,0),1)),1,INDEX('Факт выпуска'!$E:$E,MATCH($B5,'Факт выпуска'!$B:$B,0),1)),1)
 
kuralex86,
ну в файле приложенном в #12 все нормально?  (заменил на нужный)
если да - то видимо вы вставляете в другой пример и там что то иначе..
Изменено: Mershik - 21.09.2020 12:50:10
Не бойтесь совершенства. Вам его не достичь.
 
Mershik, все отлично спасибо!
Подскажите пожалуйста, а вот если я убираю с листа "факт выпуска" например яблоки, так как выпуска же не было. То на листе "План по продуктам" сразу ставится 20. Можно как-то реализовать, что если позиции нет в факте, то для и не нужно значение?
Приложил файл с Вашим примером.
 
kuralex86, так?
Код
=ИНДЕКС('План по группам'!$1:$1048576;ПОИСКПОЗ(ИНДЕКС(Продукты!$C:$C;ПОИСКПОЗ('План по продуктам'!$B5;Продукты!$D:$D;0);1);'План по группам'!$A:$A;0);ПОИСКПОЗ(C$4;'План по группам'!$2:$2;0))*ЕСЛИОШИБКА(ИНДЕКС('Факт выпуска'!$E:$E;ПОИСКПОЗ($B5;'Факт выпуска'!$B:$B;0);1);0)
Не бойтесь совершенства. Вам его не достичь.
 
Это условие отрабатывает, но теперь для Вишни показывает 0)))
 
kuralex86, так у вишни тоже самое что и яблок они есть в плане но нет их Факт выпуска...
Не бойтесь совершенства. Вам его не достичь.
 
Да, но так как у Вишни группа другая (ягоды), она должна повиться в плане по продуктам.
Короче очень все запутано)))))
 
kuralex86, короче разбирайтесь сами. Вы не можете нормально объяснить и показать в примере ручками, а мне не хочется переделывать по 100 раз. Удачи
Не бойтесь совершенства. Вам его не достичь.
 
В первом сообщении, как мне кажется, доходчиво объяснена суть проблемы.
Страницы: 1
Наверх