Notifications
Clear all

escala de folgas: PROC(), ÍNDICE() OU PROCH()

11 Posts
4 Usuários
0 Reactions
4,159 Visualizações
(@amorimqsl)
Posts: 5
Active Member
Topic starter
 

Senhores,
Tentei desenvolver uma escala de serviço, com dois tipos de escala: V e P.
Preciso encontrar o pessoal mais folgado na escala (V ou P), desde que ele esteja pronto para o serviço naquela data, e as escalas V e P não podem coincidir em dias seguidos, deve haver 1 dia de folga entre elas.
Já tentei empregar a fórmula PROC(), ÍNDICE() e CORRESP(), mas não consigo contar a última folga do pessoal, a fórmula sempre pega a 1ª coluna da referência. Eu preciso da última folga (da última coluna V ou P, conforme escala). Também não consigo acertar com a fórmula MÁXIMO(), pois quando o pessoal está dispensado no dia, a fórmula não pega ninguém para a escala.
Se alguém tiver um esquema melhor para resolver o problema, agradeço.

 
Postado : 10/01/2014 9:09 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Amorim,

Já fiz essas escalas de serviço antes. O maior problema é que vc precisa manter um histórico de quem foi escalado (ou seja, não pode manter somente fórmulas, pois quem tirou serviço, tirou e não se muda o passado, enquanto que, apenas com f'órmulas, isso pode mudar).

Além disso, chega impasse quando alguém está na vez para tirar serviço na sexta e no sábado, por exemplo, e vc tem que decidir qual dos dois dias ele vai tirar. Quando eu fazia escalas, a V tinha prioridade sobre a P, apenas porque todos combinaram que seria assim.

Assim, usei umas fórmulas junto com formatação condicional.

Se alguém não puder tirar serviço, vai aparecer "ND" (não disponível) em vermelho.
Quem estiver na vez para tirar serviço vai ter um "X" em verde.

A minha sugestão é que, a partir disso, vc vá marcando um "X" para quem for escalado. Assim, a planilha mantém o histórico, e não vai te causar problemas. (Aliás, marque o "X", e marque também os "NÃO" na tabela de baixo").

QSL

 
Postado : 11/01/2014 12:13 pm
(@amorimqsl)
Posts: 5
Active Member
Topic starter
 

Não entendi muito bem, a sua planilha está com as fórmulas, mas as escalas pretas não estão calculando. Na minha idéia, o "x" é quando o pessoal está escalado, mas na planilha, eu deixei com "0". Vou dar uma conferida e entender a lógica, qualquer coisa dou um grito.
TKS.

 
Postado : 11/01/2014 2:17 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Amorim,

Na verdade, vc tem a impressão que a planilha não está calculando. Porém, ao escalar alguém, vc vai ver que ela se atualiza, mostrando o próximo a ser escalado.

Quando digo "escalar alguém", quero dizer que, onde vc ve o "X", vc deve digitar o "X" para efetivar a escalação.

 
Postado : 11/01/2014 4:14 pm
(@amorimqsl)
Posts: 5
Active Member
Topic starter
 

Amorim,

Na verdade, vc tem a impressão que a planilha não está calculando. Porém, ao escalar alguém, vc vai ver que ela se atualiza, mostrando o próximo a ser escalado.

Quando digo "escalar alguém", quero dizer que, onde vc ve o "X", vc deve digitar o "X" para efetivar a escalação.

Bom, testei sua planilha, e percebi que ela não leva em conta se o pessoal está "SIM" ou "NÃO" na tabela abaixo. Eu preencho manual a data que ele está indisponível, e então, naquele período ele não é escalado, contando a folga normalmente.
Ao preencher a coluna G, percebi que a tabela não é preenchida apartir dali.
Eu quero que a planilha me forneça uma previsão da escala, com base nas folgas V e P (colunas C e D), no pessoal inscrito na escala (coluna B), na disponibilidade do pessoal (tabela G18:AH25).
Veja bem, eu não tenho um padrão de folga (3x1;4x1) mas vai depender da quantidade de pessoal disponível para a data. Por isso, pensei utilizar a função MÀXIMO() para escalar o mais folgado.
Eu ainda estou pensando como fazer para a escala do dia seguinte buscar na linha 5 o último V ou P, e pegar o mais folgado e prever a escala para este, contando 1 folga a mais para os demais. Não dá para pegar a coluna anterior simplesmente, porque ela pode ser V ou P, se eu fosse aninhar mais funções SE() até achar a escala correspondente, ficaria monstruosa a fórmula.

 
Postado : 12/01/2014 6:35 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Bom, testei sua planilha, e percebi que ela não leva em conta se o pessoal está "SIM" ou "NÃO" na tabela abaixo. Eu preencho manual a data que ele está indisponível, e então, naquele período ele não é escalado, contando a folga normalmente.

Estranho, porque aqui a planilha diferencia se o pessoal está "SIM" ou "NÃO". E apenas modifiquei a tua fórmula colocando um "til". Vc estava usando "NAO", e eu mudei para "NÃO". Toda vez que tiver um "NÃO", automaticamente deve aparecer um ND em vermelho na escala, para o dia e a pessoa correspendentes. Note que esse ND não é uma informaçÃo, é apenas uma máscara de visualização, pois mesmo que alguém não possa tirar o serviço, ainda está contando a folga.
Para conferir, vá em formatação e células, personalizado e veja a máscara. Para ver o valor da célula, selecione a célula, pressione F2 e depois F9 (ao fazer isso, saia da célula com ESC para não perder a fórmula).

Ao preencher a coluna G, percebi que a tabela não é preenchida apartir dali.
Eu quero que a planilha me forneça uma previsão da escala, com base nas folgas V e P (colunas C e D), no pessoal inscrito na escala (coluna B), na disponibilidade do pessoal (tabela G18:AH25).

Isso acontece porque vc preencheu somente a coluna G. A planilha está projetada para informar o próximo a ser escalado no dia seguinte, ou seja, no primeiro dia da planilha, na coluna G, vc vai olhar quem extá com um X. Esse X é resultado de uma fórmula. Substitua a fórmula pelo valor "X", e vc vai ver que a planilha vai te informar quem deve ser escalado no dia seguinta (coluna H). A cada coluna preenchida com "X", a coluna seguinte diz quem será o próximo escalado.

Veja bem, eu não tenho um padrão de folga (3x1;4x1) mas vai depender da quantidade de pessoal disponível para a data. Por isso, pensei utilizar a função MÀXIMO() para escalar o mais folgado.
Eu ainda estou pensando como fazer para a escala do dia seguinte buscar na linha 5 o último V ou P, e pegar o mais folgado e prever a escala para este, contando 1 folga a mais para os demais. Não dá para pegar a coluna anterior simplesmente, porque ela pode ser V ou P, se eu fosse aninhar mais funções SE() até achar a escala correspondente, ficaria monstruosa a fórmula.

Sim, essa parte eu entendi. Eu até tentei fazer isso que vc pediu, mas foi inviável, pelo seguinte motivo: "escalar" automaticamente o mais folgado envolve bem mais variáveis do que apenas apresentar o mais folgado e deixar a escolha manual. A consequência disso é que a fórmula ficou tão grande que não podia ser escrita. (O Excel tem um limite de comprimento para as fórmulas). Isso me fez deixar de lado a ideia da escala automática.

Além disso, como a tua escala me parece o sistema militar, diga-se, trabalhei quase 1 ano na sargenteação fazendo escalas. Na época, tínhamos a escala preta, a vermelha e a azul (sexta), e elas ainda se sobrepunham em prioridade, ou seja, se alguém tivesse na prioridade para quinta, sexta e sabado (preta, azul e vermelha), a prioridade era a vermelha, depois a azul e por último a preta, o que o colocaria escalado, na ordem, para sábado, terça e sexta.

Porém, nesse período, eu notei, por experiência, que usar uma escala automática não dava certo, porque muitos fatores faziam alguém ser remanejado a todo momento.

Ainda assim, caso vc queira uma previsão, o que vc pode fazer:
- ou usar o modelo que eu te passei e simplesmente "digitar "X" onde aparece um X em verde. (Com isso vc perde a fórmula da célula, mas basta arrastar a fórmula de outra célula acima ou abaixo e volta ao anterior).

- ou teríamos que pensar em uma solução em UDF (criar uma função).

Abs

 
Postado : 12/01/2014 9:01 am
(@amorimqsl)
Posts: 5
Active Member
Topic starter
 

Estive gastando algumas horas para encontrar uma solução, enfim, e resolvi de uma maneira. A escala atendeu o que preciso. No entanto, gostaria de desenvolver de outra maneira. O problema é mais de lógica utilizando funções do excel do que planilhas propriamente dita.
Gostaria de uma função que me retornasse um dado em uma matriz buscando dois critério dessa matriz. (Ex: Buscar na linha A1 maior data com "V" na linha A2, e retornar o Máximo() dessa coluna).
Na planilha coloquei também um descritivo de como resolvi o problema.

 
Postado : 15/01/2014 8:33 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde

Eu peguei o bonde andando, mas baixando a tua planilha eu não consegui localizar o que vc descreveu:

Gostaria de uma função que me retornasse um dado em uma matriz buscando dois critério dessa matriz. (Ex: Buscar na linha A1 maior data com "V" na linha A2, e retornar o Máximo() dessa coluna).
Na planilha coloquei também um descritivo de como resolvi o problema.

As células A1 e A2 estão em branco...

At.te

 
Postado : 15/01/2014 11:10 am
(@amorimqsl)
Posts: 5
Active Member
Topic starter
 

Eu tinha apenas citado um exemplo.
Mas eu anexei um exemplo do que eu quero. Eu preciso em G6 (e nas células seguintes), se G4 for 'V', buscar a maior data a partir de E5 em que seja 'V', e me fornecer a folga correspondente.

 
Postado : 15/01/2014 6:07 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Amorim, considerando o teu último post, coloque a fórmula abaixo em G6 e arraste:

=PROC(2;1/($E$4:F$4=G$4);$E6:F6)

 
Postado : 17/01/2014 8:18 pm
(@andressaan)
Posts: 0
New Member
 

Boa noite pessoas,
Cai de paraquedas na seção de escalas lá no quartel, vendo o caos que anda escala, já busquei várias maneiras para solucionar, porém como não tenho muita experiência em Excel, acabei estagnando, gostaria de saber se alguém aqui possui alguma escala e possa me fornecer a mesma, pois realmente estou desesperada na minha seção, porém tentarei cumprir o que me foi designado da melhor maneira possível. Desde já agradeço a compreensão de todos e também peço desculpas caso esteja incomodando. Fico no aguardo. Grata.

 
Postado : 22/09/2016 4:41 pm