Notifications
Clear all

Retornar OC da mais antiga para a mais nova

3 Posts
2 Usuários
0 Reactions
859 Visualizações
(@cunica)
Posts: 0
New Member
Topic starter
 

Prezados, preciso de uma ajuda

Tenho uma planilha de +- 40.000 linhas com todos pedidos de venda digitados no sistema
existem vários itens nesta planilha, por exemplo:

pedido item quantidade estoque falta falta acum qual OC atende?
1 agua 1000lts 500 500 500
1 sabão 500kg 500 0 0
2 agua 400lts 0 400 900

em outra planilha tenho as ordens de compra de cada item (geralmente trabalhamos em média com 50 a 100 ordens de compra de cada item

ord comp item qtde data entrega
99 agua 500lts 04/05
1015 agua 600lts 05/05

precisaria na frente de cada item do pedido de venda informar qual a OC (sempre da mais antiga para a mais nova) que atende aquela quantidade
no exemplo acima, ficaria facil preencher que a OC 99 atenderia o primeiro pedido de agua e a oc 1015 atenderia o segundo pedido de venda.

Meu problema é que a planilha tem +- 50.000 linhas e preciso distribuir as oc´s (que variam em torno de 50 para cada item) em todos os pedidos de venda e com isto saberia aproximadamente quando conseguiria faturá-lo.

hoje utilizo a formula abaixo onde o concatenar O8444&1 aponta AGUA1, O8444&2 = AGUA2
na base onde ele busca o agua1, agua2, agua3 por diante tem uma somatoria das ordens de compra
no exemplo acima, agua1 seria o valor de 500, agua2 totalizaria 1100 (500 da oc de agua 1 e 600 da segunda oc de agua)
a formula busca o primeiro AGUA onde a quantidade acumulada atenderia a falta acumulada :

Até aí tava beleza, pois a formula abaixo eu conseguiria enxergar até 40 ordens de compra de agua, massss mudaaram algumas regras na empresa e tenho agora muito mais ordens em aberto, chegando até a 100 ordens de determinados itens (ordens diárias, por turno, etc...) e quando incluo mais 60 funções na fórmula o excel não aguenta (nem rodando em um servidor com 32bg de ram), pois pensem em uma planilha com 50.000 linhas e 100 procv em cada linha...

gostaria de uma ajuda para talvez mudar esta fórmula para alguma mais leve...

=SEERRO(SE(Z8444="OK";"";
SE(AF8444<=PROCV(O8444&1;Plan1!G:J;3;0);PROCV(O8444&1;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&2;Plan1!G:J;3;0);PROCV(O8444&2;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&3;Plan1!G:J;3;0);PROCV(O8444&3;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&4;Plan1!G:J;3;0);PROCV(O8444&4;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&5;Plan1!G:J;3;0);PROCV(O8444&5;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&6;Plan1!G:J;3;0);PROCV(O8444&6;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&7;Plan1!G:J;3;0);PROCV(O8444&7;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&8;Plan1!G:J;3;0);PROCV(O8444&8;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&9;Plan1!G:J;3;0);PROCV(O8444&9;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&10;Plan1!G:J;3;0);PROCV(O8444&10;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&11;Plan1!G:J;3;0);PROCV(O8444&11;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&12;Plan1!G:J;3;0);PROCV(O8444&12;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&13;Plan1!G:J;3;0);PROCV(O8444&13;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&14;Plan1!G:J;3;0);PROCV(O8444&14;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&15;Plan1!G:J;3;0);PROCV(O8444&15;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&16;Plan1!G:J;3;0);PROCV(O8444&16;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&17;Plan1!G:J;3;0);PROCV(O8444&17;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&18;Plan1!G:J;3;0);PROCV(O8444&18;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&19;Plan1!G:J;3;0);PROCV(O8444&19;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&20;Plan1!G:J;3;0);PROCV(O8444&20;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&21;Plan1!G:J;3;0);PROCV(O8444&21;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&22;Plan1!G:J;3;0);PROCV(O8444&22;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&23;Plan1!G:J;3;0);PROCV(O8444&23;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&24;Plan1!G:J;3;0);PROCV(O8444&24;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&25;Plan1!G:J;3;0);PROCV(O8444&25;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&26;Plan1!G:J;3;0);PROCV(O8444&26;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&27;Plan1!G:J;3;0);PROCV(O8444&27;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&28;Plan1!G:J;3;0);PROCV(O8444&28;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&29;Plan1!G:J;3;0);PROCV(O8444&29;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&30;Plan1!G:J;3;0);PROCV(O8444&30;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&31;Plan1!G:J;3;0);PROCV(O8444&31;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&32;Plan1!G:J;3;0);PROCV(O8444&32;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&33;Plan1!G:J;3;0);PROCV(O8444&33;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&34;Plan1!G:J;3;0);PROCV(O8444&34;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&35;Plan1!G:J;3;0);PROCV(O8444&35;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&36;Plan1!G:J;3;0);PROCV(O8444&36;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&37;Plan1!G:J;3;0);PROCV(O8444&37;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&38;Plan1!G:J;3;0);PROCV(O8444&38;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&39;Plan1!G:J;3;0);PROCV(O8444&39;Plan1!G:J;4;0);
SE(AF8444<=PROCV(O8444&40;Plan1!G:J;3;0);PROCV(O8444&40;Plan1!G:J;4;0);
"NÃO PROGRAMADO")))))))))))))))))))))))))))))))))))))))));"NÃO PROGRAMADO!!")

 
Postado : 03/05/2016 3:37 pm
(@edilsonfl)
Posts: 227
Estimable Member
 

Olá cunica,

Ficaria mais simples para os colaboradores do fórum analisar um modelo de sua planilha.
compacte o arquivo e poste no fórum.

 
Postado : 03/05/2016 6:53 pm
(@cunica)
Posts: 0
New Member
Topic starter
 

Segue anexo uma parte do arquivo, as colunas que preciso preencher são a L e M.

 
Postado : 03/05/2016 8:19 pm