Fórmulas - Exemplos Cálculos Diversos - Regras e Condições

Ultima Atualização: 08/10/2024    Artigo de código : 12697             

Considerando regras internas para cálculo de formula, quando cálculo incorporar outros eventos (rotina diversas ou rotina formula) o evento a ser criado, deve possuir numeração superior aos eventos constantes na composição de cálculo

Exemplo: Desejo criar uma formula com cálculo que some os eventos 1000, 1001, 1002 e 1003, o evento a ser criado deve possuir superior ao que compõe o cálculo, então 1005.


1 - Funcionário Horista, quando Utilizar cada Variável?

MVALSALM = salário cheio do cadastro, sendo valor hora * 220 (lembrando que neste valor já está incluso o DSR 1010)

SALARIO = valor do salário HORA do funcionário

V(0001) = valor que o funcionário receberá de salário naquele mês, sendo variável

Quando utilizar cada variável?

MVALSALM: quando deseja fórmula com o salário do cadastro, adicional noturno, horas extras com insalubridade.

Veja o exemplo, onde o cálculo de HE é pelo salário cheio + insalubridade:

(((MVALSALM+V(1040))/220)*1.5)*REFERENCIA                       

SALARIO: quando deseja um cálculo sobre o salário hora do funcionário.

Exemplo: salário hora * 10%, a fórmula ficaria assim:

SALARIO*10%

V(0001): quando deseja o valor proporcional do salário, ou seja, as horas trabalhadas naquele mês, sendo variável de um mês para outro.

Exemplo: um vale refeição que será 5% sobre os dias trabalhados:

V(0001)*5%


2- Para criar eventos de hora extra com rotina fórmula, crie com a variável SALARIO e não com o evento 0001, pois quando o funcionário está de férias, por exemplo, o 0001 é proporcional aos dias trabalhados, e o correto é calcular a hora extra sobre o salário base e não sobre o proporcional.

Exemplo: Deseja somar salário + adicional noturno para calcular a hora extra 50%.

(((SALARIO+V(1110))/220)*1.5)*REFERENCIA


3 - Evento de hora extra com fórmula, onde em sua estrutura possua evento com rotina "Cálculo Anuênio" lançado na aba de lançamento automático do cadastro de funcionário. 

Exemplo: Desejar somar salário + demais eventos da digitação que devam incidir (nesse caso deve ser considerado os eventos de código 0028, 0516, 0600 e 1110) + evento de anuênio para calcular a hora 100% (informar o percentual de acordo com a particularidade, exemplo 50% informar 1.5)

((SALARIO+(SOMA("0028;0516;0600;1110"))+calcanuenio(func.codfun,mvalsalm,.t.,"0513"))/220)*2*REFERENCIA



4 - Evento de hora extra com conversão de sexagesimal para centesimal e que o sistema considere duas casas após a vírgula (sem arredondar).

(((SALARIO+V(0005))/HORASMES)*(Int(referencia)+TRUNCA(((referencia-Int(referencia))/60*100),2)))*1.7     


5 - Evento de hora extra com conversão de sexagesimal para centesimal e que o sistema arredonde duas casas após a vírgula quando a terceira casa é acima de 5.

(((SALARIO+V(0005))/HORASMES)*(Int(referencia)+ROUND(((referencia-Int(referencia))/60*100),2)))*1.7         


6 - Se o salário * 7% for menor de 50,00 reais, será pago salário * 7%. Se este cálculo for maior, pagará 50,00.

IIF(SALARIO*7%<50,SALARIO*7%,50)


7 - Calcular 1% do salário e limitar teto mínimo a R$14,00 e máximo a R$26,50.

IIF(SALARIO*1%<14,14,IIF(SALARIO*1%>26.5,26.5,SALARIO*1%))


8 - Calcular horas extras noturnas (adicional Noturno 20%) reduzidas.

(((SALARIO/220)*1.14)*20%)*REFERENCIA

*Hora Noturna = 1.14 hora normal


9 - Se o salário * 1,5 % for menor que R$30,00, paga 30,00 e, se for maior, paga o salário * 1,5 %.

IIF(SALARIO*1.5%<30, 30, SALARIO*1.5%)


10 - Calcular o Vale Transporte para os dias trabalhados.

((SALARIO/30)*REFERENCIA)*6%


11 - Calcular sobre dias úteis o Vale Transporte.

((SALARIO/30)*DIAUTEIS)*6% 

ou;

((SALARIO*6%)/30)*DIASUTEIS


12 - Calcular Pensão Alimentícia % sobre valor líquido, sendo o total de vencimentos – INSS – IRRF.

(MTOTVEN-V(9860)-V(9780))*30%


13 - Para pagar o DSR sobre eventos do sistema.

V(XXXX)/DIASUTEIS*DOMFER

*XXXX = Código do evento de fórmula criado para base de DSR.


14 - Calcular um percentual sobre o líquido.

((((MTOTVEN-MTOTDES)-V(9860))-V(9870)))*REFERENCIA/100     

*Muito utilizado para Pensão Alimentícia.


15 - Calcular 10% sobre a somatória do salário + insalubridade.

(V(0001)+V(1040))*10%


16 - Calcular insalubridade (20%) sobre salário mínimo  proporcional aos dias trabalhados, deduzindo faltas em dias.

(((R(0001)-R(5650))*SALMIN)/30)*20%


17 - Pensão 1/3 do líquido
(((MTOTVEN-MTOTDES)-V(9860))-V(9870))/3

18 - Hora Extra somando salário com a insalubridade
(((SALARIO+V(1040))/220)*1.5)*REFERENCIA             

19 - Percentual do piso
SINDIC.PISO*% ( informar a quantidade que o cliente quer)  ex:  SINDIC.PISO*5%

20 - % sobre a base de INSS do holerite
iif(mtinss >inss.in_t4,(inss.in_t4 * referencia/100),mtinss*referencia/100)

ou;

((MTINSS*2)/100)       

21 - Cálculo sobre Cálculo
(((((SALARIO/HORASMES)*20%)+(SALARIO/HORASMES))*50%)+(SALARIO/HORASMES)+(SALARIO/HORASMES)*20%)*REFERENCIA          
           

Exemplo: 

SALARIO/HORASMES = 4,44
SALARIO/HORASMES * 20% = 0,89
SALARIO/HORASMES + SALARIO/HORASMES * 20% = 5,33
SALARIO/HORASMES + SALARIO/HORASMES * 20% * 50% = 2,67
SALARIO/HORASMES + SALARIO/HORASMES * 20% * 50% + SALARIO/HORASMES + SALARIO/HORASMES * 20% = 8,00
* REFERENCIA = X 2 HORAS = 16 HORAS. (RESULTADO FINAL).

22 - Desconto de valor fixo, com dedução de faltas, se houver.

IIF(V(5650)>0,12.31,4.10)  

Exemplo:

Valor fixo todo mês, porém se o funcionário tiver algum evento o valor altera
 
5650 - Evento que irá ter para mudar o valor;
12.31 - Valor que irá ser quando tiver o evento 5650;
4.10 - valor normal a ser descontado.
 
Descontar fixo 4.10, mas se o funcionário tiver qualquer quantidade de faltas, irá descontar 12.31.21     

23 - cálculo de Vale Transporte com teto para desconto de 6%, sobre os eventos de Comissão e DSR de comissão

IIF((V(0770)+V(1220))*6% > FUNC.TETOVT, FUNC.TETOVT, (V(0770)+V(1220))*6%)  
 
O teto deve estar preenchido no cadastro do func. ma tela outros.
 
24 -  Hora extra de funcionário Docente (50%) considerando todos os eventos de salário

((MTOTROT000/220)*1.5)*REFERENCIA    

25 - Hora Extra noturno, considerando hora 60" (minutos)

(((SALARIO/220)*1.2)*(INT(REFERENCIA)+((REFERENCIA-INT(REFERENCIA))/60*100)))*1.5 

Referência convertida automaticamente.
Exemplo:
Salário mensal R$ 1.980,00 / 220 = 9,00
9,00 * 20% = 10,80
10,80*50% = 16,20 Valor de 1 hora extra noturna sobre um salário de R$ 1980,00   

26 - Complemento de salário sobre piso do sindicato, informando valor do piso.

IIF((V(0001))<1233.94,1233.94-(V(0001)),0) 

27 - Vale transporte com dedução de faltas (evento padrão 5650)

((SALARIO/30)*(R(0001)-R(5650)))*6%       

28 - Adicional Noturno com Jornada reduzida

(((SALARIO/220)*1.14)*20%)*REFERENCIA 
 
 ou;

Funcionário mensalista
(((((REFERENCIA)*60)/52.50)*1.20)*SALARIO)/HORASMES     

Funcionário horista
(((((REFERENCIA)*60)/52.50)*1.20)*MVALSALM)/HORASMES                     

29 - Hora extra 60 minutos, com eventos adicionados para cálculo

(((V(0001)+V(0770)+V(1220))/220) * (Int(referencia) + ((referencia - Int(referencia)) / 60 * 100))) * 1.6

Neste exemplo é somado os eventos 0001, 0770 e 1220 para o calculo de uma hora extra a 60%,considerando 1 hora 60 minutos.

30 - Desconto, considerando todos os vencimentos, deduzindo inss limitado ao teto de R$ 27,00

IFF((MTOTVEN-V(9860))*1%>27,27,(MTOTVEN-V(9860))*1%)

31 - Hora extra 200% com base no salário + evento de anuênio (desde que esteja no lançamento automático)
((SALARIO+calcanuenio(func.codfun,mvalsalm,.t.,"XXXX")/220)*200%*referencia    
XXXX = colocar o código do evento de anuênio

Regras/Considerações

– Fórmulas com Teto 
 
Para criar fórmulas com teto, utilizamos a variável IIF(), vamos explicar como ela funciona. A expressão IIF() tem parâmetros: 
 
1º – Condição/Verificação 
2º – Se a condição for verdadeira, faça tal operação 
3º – Se a condição for falsa, faça tal operação 
 
Essas operações são separadas por vírgula dentro da expressão IIF(). 
 
O exemplo abaixo calcula 10% do salário limitado a um teto máximo de 50 reais. 
 
IIF(SALARIO*10%<50,SALARIO*10%,50) 
 
Baseado na fórmula acima, explicaremos o que é a condição, qual operação é realizada se ela for verdadeira e qual operação é realizada quando essa condição for falsa. 
 
Dentro da fórmula a Condição é o que está dentro do parêntese e aparece antes da primeira vírgula, 
conforme acima, podemos ver que a condição é:  SALARIO*10%<50 Então até o momento a fórmula está assim: 
 
IIF(SALARIO*10%<50) 
 
Precisamos dessa condição pois o cálculo desejado é  uma fórmula onde 10% não pode ser maior do que 50 reais, então essa condição é como se fosse uma pergunta “O salário do funcionário * 10%, é menor do que 50 reais?” 
 
Se fizermos essa pergunta temos duas opções de resposta: Sim ou Não. 
Preciso inserir na fórmula uma ação para cada uma das respostas, então a resposta Sim vamos considerar que a condição é verdadeira, já para a resposta Não, vamos considerar que a condição e falsa. 
 
O que devemos fazer se a resposta for Sim, ou seja, se 10% do salário for menor do que 50 reais? Devemos calcular valor referente a 10% do salário, para isso vamos inserir uma vírgula logo após a condição e a operação: SALARIO*10% 
Depois de inserir a operação se a condição é verdadeira, a fórmula ficou assim:        
        
IIF(SALARIO*10%<50,SALARIO*10%) 
 
Agora devemos inserir na fórmula a última operação, que é quando a condição for falsa. 
O que devemos fazer se a resposta for Não, ou seja, se 10% do salário for maior do que 50 reais? De acordo com a solicitação, temos que manter 50 reais como valor máximo, então não devemos realizar nenhum cálculo, só vamos inserir uma vírgula após a Operação de “Sim” e colocar o valor máximo para teto, neste caso, 50 reais. 
Depois de inserir a operação se a condição é falsa, a fórmula está pronta, como o exemplo abaixo: 
 
 IIF(SALARIO*10%<50,SALARIO*10%,50) 
Com base nas informações acima, concluímos que a fórmula com teto é feita da seguinte maneira: 
 
IIF(Condição,Operação se a condição for verdadeira, Operação se a condição for falsa) 
 

 - Fórmula de Pensão com teto mínimo de desconto. 
 
Exemplo: calculo 30% do total de vencimentos – faltas – atrasos, porém esse valor não pode ser menor do que 200 reais. 
 
Vamos criar primeiro uma condição para depois inseri-la na fórmula. 
Para criar a condição eu preciso fazer com que o sistema realize o cálculo desejado, questionando se o resultado é Maior do que 200 reais, pois ele não pode ser menor. 
 
IIF(((MTOTVEN-V(5650))-5850)*30%>200) 
 
Com a fórmula acima eu me faço a seguinte pergunta: 30% do total de vencimentos – faltas e atrasos é maior do que 200 reais? Teremos as duas respostas: Sim ou Não 
 
O que devemos fazer se a resposta for Sim, ou seja, 30% do total de vencimentos – faltas e atrasos é maior do que 200 reais? 
Devemos calcular valor referente a 30% do total de vencimentos – faltas e atrasos, para isso vamos inserir uma vírgula logo após a condição e a operação: ((MTOTVEN-V(5650))-5850)*30% Depois de inserir a operação se a condição é verdadeira, a fórmula ficou assim:   
 
IIF(((MTOTVEN-V(5650))-5850)*30%>200,((MTOTVEN-V(5650))-5850)*30%) 
 
Agora devemos inserir na fórmula a última operação, que é quando a condição for falsa. 
O que devemos fazer se a resposta for Não, ou seja, 30% do total de vencimentos – faltas e atrasos é maior do que 200 reais? 
De acordo com a solicitação do cliente, o desconto de pensão não pode ser Menor do que 200 reais. Então não devemos realizar nenhum cálculo, só vamos inserir uma vírgula após a Operação de “Sim” e colocar o valor mínimo para teto, neste caso, 200 reais. 
Depois de inserir a operação se a condição é falsa, a fórmula está pronta, como o exemplo abaixo: 
 
IIF(((MTOTVEN-V(5650))-5850)*30%>200,((MTOTVEN-V(5650))-5850)*30%,200) 
 
 
 - Fórmula com Condição 
 
A fórmula com condição utiliza a mesma expressão que usamos na fórmula com teto IIF(). Esta fórmula é utilizada para fazer cálculos diferentes em uma determinada condição. 
 
Assim como a fórmula de teto, vamos usar os mesmos parâmetros para a expressão IIF() : 
 
 
1º – Condição/Verificação 
2º – Se a condição for verdadeira, faça tal operação 
3º – Se a condição for falsa, faça tal operação 
 
  
Vamos para um exemplo: 
 
Preciso que o sistema calcule 5% do salário para funcionários que o salário integral é menor ou igual a 1000 reais e calcule 2% do salário para os funcionários que o salário integral é maior do que 1000 reais. 
 
Vamos criar primeiro uma condição para depois inseri-la na fórmula. 
Para criar a condição eu preciso fazer com que o sistema realize o cálculo solicitado pelo cliente questionando se Salário integral do funcionário é menor ou igual a 1000 reais. 
 
IIF(SALARIO<=1000) 
 
Com a fórmula acima eu me faço a seguinte pergunta: O Salário integral é menor ou igual a 1000 reais? 
Teremos as duas respostas: Sim ou Não 
 
O que devemos fazer se a resposta for Sim, ou seja, O salário integral é menor ou igual a 1000 reais! 
Devemos calcular 5% do salário integral do funcionário, para isso, vamos inserir uma vírgula logo após a condição e a operação: SALARIO*5% 
Depois de inserir a operação se a condição é verdadeira, a fórmula ficou assim:   
 
IIF(SALARIO<=1000,SALARIO*5%) 
 
Agora devemos inserir na fórmula a última operação, que é quando a condição for falsa. 
O que devemos fazer se a resposta for Não, ou seja,  O salário integral é maior do que 1000” Devemos calcular 2% do salário integral do funcionário, para isso, vamos inserir uma vírgula após a Operação de “Sim” e a operação: SALARIO*2% 
Depois de inserir a operação se a condição é falsa, a fórmula está pronta, como o exemplo abaixo: 
 
IIF(SALARIO<=1000,SALARIO*5%,SALARIO*2%) 
 
 
Vamos para outro exemplo: 
 
Preciso que o sistema calcule 10% do salário para funcionários que o salário integral é menor ou igual a 1000 reais, calcule 15% do salário para os funcionários que o salário integral esta entre 1000 e 2000 reais e calcule 20% do salário para os funcionários que o salário integral é maior do que 2000 reais. 
 
Vamos criar primeiro uma condição para depois inseri-la na fórmula. 
Para criar a condição vamos começar pelos funcionários que o salário integral é Menor ou igual a 1000 reais. preciso fazer com que o sistema realize o cálculo solicitado pelo cliente questionando se o Salário integral é menor ou igual a 1000 reais. 
 
IIF(SALARIO<=1000) 
 
 
Com a fórmula acima eu me faço a seguinte pergunta: O Salário integral é menor ou igual a 1000 reais? 
Teremos as duas respostas: Sim ou Não 
 
O que devemos fazer se a resposta for Sim, ou seja, O salário integral é menor ou igual a 1000 reais! 
Devemos calcular 10% do salário integral do funcionário, para isso, vamos inserir uma vírgula logo após a condição e a operação: SALARIO*10% 
Depois de inserir a operação se a condição é verdadeira, a fórmula ficou assim:   
 
IIF(SALARIO<=1000,SALARIO*10%) 
 
O que devemos fazer se a resposta for Não, ou seja, O salário integral é menor ou igual a 1000 reais! 
Agora não vamos inserir apenas uma operação na fórmula, vamos fazer uma nova verificação/condição para verificar se o salário integral é menor ou igual a 2000 reais. 
 
Vamos criar uma nova condição, mas agora, preciso fazer com que o sistema realize o cálculo solicitado pelo cliente questionando se o Salário integral é menor ou igual a 2000 reais. 
 
IIF(SALARIO<=2000) 
 
Depois de criada essa nova condição vamos inseri-la na fórmula, para isso vamos  inserir uma vírgula após a Operação de “Sim” e a condição que criamos agora. A fórmula ficará da seguinte forma: 
 
IIF(SALARIO<=1000,SALARIO*10%,IIF(SALARIO<=2000) 
 
Com a fórmula acima eu me faço a seguinte pergunta na nova condição: O Salário integral é menor ou igual a 2000 reais? 
Teremos as duas respostas: Sim ou Não. 
 
O que devemos fazer se a resposta for Sim, ou seja, O Salário integral é menor ou igual a 2000 reais! 
Devemos calcular 15% do salário integral do funcionário, para isso, vamos inserir uma vírgula logo após a nova condição e a operação: SALARIO*15% 
Depois de inserir a operação se a nova condição é verdadeira, a fórmula ficou assim:   
 
IIF(SALARIO<=1000,SALARIO*10%,IIF(SALARIO<=2000,SALARIO*15%) 
 
Agora devemos inserir na fórmula a última operação, que é quando a nova condição for falsa. 
O que devemos fazer se a resposta for Não, ou seja, O Salário integral é maior do que 2000 reais! 
Devemos calcular valor referente a 20% do salário, para isso vamos  inserir uma vírgula após a 
Operação de “Sim” e a operação: SALARIO*20%. 
Depois de inserir a operação se a condição é falsa, a fórmula está pronta, como o exemplo abaixo: 
 
IIF(SALARIO<=1000,SALARIO*10%,IIF(SALARIO<=2000,SALARIO*15%,SALARIO*20%)) 

 
– Fórmula de Conversão de Hora 60 para hora 100 
 
Utilizamos esta fórmula quando desejo que o sistema faça a conversão de hora 60 para hora 100 e a rotina de hora 60º não atende a necessidade do usuário. 
 
Quando deseja digitar a quantidade de horas e os minutos exatos ao lançar a hora extra para o funcionário. 
 
Exemplo: 
 
Se o funcionário fez duas horas e meia de hora extra a 50%, sem a fórmula, deve lançar 2,5 no campo referencia, mas para o funcionário não questionar o RH da empresa, deseja digitar duas horas e meia como 2,30. 
 
Como toda a fórmula, é necessário que saibamos fazer essa conversão na calculadora para poder criar a fórmula. 
A conversão é bem simples, veja: 
 
Funcionário fez 2,30 horas, devo converter apenas os minutos, ou seja, só que aparece depois da vírgula (0,30). Pois depois de convertidos os minutos, vou somá-los novamente com a hora cheia (2). 
 
Vamos para a conversão, pegue os minutos, no nosso exemplo é 0,30. Divida 0,30 por 60 e depois multiplique por 100 
 
0,30/60= 0,005 *100 = 0,5 
 
Some o valor de 0,5 que está convertido com a quantidade de horas que o funcionário fez, no nosso exemplo foram 2 horas. 
 
0,5+2 = 2,5 
 
Agora é só utilizar o 2,5 para multiplicar pelo salário hora do funcionário e conseguir fazer o cálculo na calculadora. 
 
Depois de entender a calculadora, vamos para a fórmula... 
 
Preciso fazer com que o sistema entenda passo a passo essa conversão, o 1º passo é fazer o sistema considerar somente os minutos para a conversão, desconsiderando as horas. 
 
Para o sistema pegar somente as horas da variável Referencia, vamos utilizar a expressão: INT(REFERENCIA), que captura apenas o valor inteiro da referencia ( só as horas) 
 
Para converter os minutos, vamos fazer a referencia – as horas da referencia, assim sobrará apenas os minutos para fazer a conversão. 
 
(((REFERENCIA-INT(REFERENCIA))/60)*100) 
 
Depois de fazer essa conversão é só juntar com o outro pedaço que separamos as horas: 
(INT(REFERENCIA)+(((REFERENCIA-INT(REFERENCIA))/60)*100)) 
 
Exemplo com valores na fórmula completa 
 
Referencia digitada pelo cliente: 2,30 
 
(INT(REFERENCIA)+(((REFERENCIA-INT(REFERENCIA))/60)*100)) 
 
 
Observação: Conforme a fórmula vai sendo resolvida, vamos eliminando os parênteses. 
 
Fórmula normal    = (INT(REFERENCIA)+(((REFERENCIA-INT(REFERENCIA))/60)*100)) 
1ª Resolução         = (INT(REFERENCIA)+((0,30/60)*100)) 
2ª Resolução         = (INT(REFERENCIA)+(0,005*100)) 
3ª Resolução         = (INT(REFERENCIA)+0,5) 
4ª Resolução         = (2 + 0,5) 
5ª Resolução         = 2,5 
 
Para aplicar essa fórmula de conversão em uma hora extra, deve substituir a palavra REFERENCIA, veja o exemplo abaixo: 
 
Fórmula de HE Normal (Sem conversão): 
 
(((SALARIO+(SALMIN*20%))/HORASMES)*1.5)*REFERENCIA 
 
Fórmula de HE com a conversão: 
 
(((SALARIO+(SALMIN*20%))/HORASMES)*1.5)*(INT(REFERENCIA)+(((REFERENCIA-INT(REFERENCIA))/60)*100)) 
 

Acesse também:





A sua opinião é muito importante para nós:


 Este artigo me ajudou

Obrigado pela sua opinião

 Este artigo não me ajudou

Obrigado pela sua sugestão!

Descreva aqui como podemos melhorar este conteúdo.
Para outros assuntos entre em contato com nossos atendentes pelo telefone 3004-3303 ou pelo chat.

Enviar
12697