Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Calcular valor hora trabalhada

Estou precisando calcular o valor hora trabalhada da seguinte forma:


HORA   | VALOR HORA | TOTAL A PAGAR

02:30   X        60,00        =       150,00


Veja abaixo uma tabela com os valores das horas e o calculo delas:

Calculo de Horas.png


Estou usando essa fórmula atualmente:

=Coluna3 * VLRHORA, mas não está dando certo.


Onde a coluna 3 ficam as horas que excederam do contrato e que devo multiplicar pelo valor hora contratado.

Labels (3)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Senhor felipedl‌, agradeço sua colaboração, você me deu uma grande ajuda para sanar minha dificuldade.

Com base na sua explanação eu consegui fazer dentro da expressão a seguinte forma:

=(floor(Column(4)) * 24 * CRM_CTR_VLRADIC) + (hour(Column(4)) * CRM_CTR_VLRADIC) + (Minute(Column(4))/60 * CRM_CTR_VLRADIC)

obedecendo as colunas da tabela abaixo:

Calculo de Horas4.png

View solution in original post

11 Replies
felipedl
Partner - Specialist III
Partner - Specialist III

Olá Guilherme,

A conta simples por si só não ira conseguir pegar o resultado que você quer, visto que o campo está com um valor de hora e sendo assim o seu valor de 31:15 hora é representado numericamente por 1.302, por isso sua conta dá bem baixo.

Fazendo o seguinte script:

let valorHora = 60;

load

*,

// Pega o número de dias

floor([Hora Extra])*24*$(valorHora)

+

// Pega o número de horas

hour([Hora Extra])*$(valorHora)

+

// Pega o valor de minutos

Minute([Hora Extra])/60*$(valorHora) as Calculo;

load * Inline

[

Hora Extra

31:15

35:00

];

Chega-se no abaixo, que acredito ser o que você precisa.

Veja que só tenho o campo Hora Extra na tela, um com a representação numérica e a outra de intervalo no formato hh:mm.

sample.png

Anonymous
Not applicable
Author

Executei teu código e ficou assim:

Calculo de Horas2.png

mas como estou iniciando, não consigo fazer o cálculo com esses dados.

Sei que cada cálculo foi tirado da coluna Hora Extra.

Dúvidas:

  1. // Pega o número de dias 
  2. floor([Hora Extra])*24*$(valorHora) ! ! !

Você calcula [Hora Extra] multiplicando por 24 horas, onde 24 é o total de horas num dia?


  1. // Pega o número de horas 
  2. hour([Hora Extra])*$(valorHora) 

  1. // Pega o valor de minutos 
  2. Minute([Hora Extra])/60*$(valorHora) as Calculo; 

Depois você separa a quantidade de horas e a quantidade de minutos, juntando num campo "as Calculo";

Esse campo cálculo já é o valor em horas que devo cobrar de meu cliente?

felipedl
Partner - Specialist III
Partner - Specialist III

Oi Guilherme,

O que acontece é que a Hora extra = 31:15 é na verdade o número 1.302, ou seja o que passa de 1 é considerado um dia inteiro, e a fração do número seriam as horas restantes e minutos.

Quando dou o floor([Hora Extra]) está considerando os dias, e por isso faço por 24 para depois multiplicar pelo valor da hora.

Nâo tenho o sense instalado aqui, ai vou ficar devendo o QVF.

Mas o cálculo seria

floor([Hora Extra]) = 1

1 * 24 * [Hora Trabalhada] = 1440

Então até essa porção, o custo é de 1440 por questão de 1 dia de trabalho extra.

A funçaõ minute([Hora Extra]) irá retornar os 15 minutos da hora. Pra pegar o valor a ser cobrado, é necessário dividir por 60 (minutos/hora) e multiplicar pelo valor/hora * 60.

Nesse caso, irá anula e portanto para 15 minutos serão taxados os 60.

O mesmo vale para as 35h.

floor([Hora Extra]) = 1 * 24 * 60 = 1440

hour([Hora Extra]) = 11 * 60 = 660

Logo o valor total será 2100.

Espero ter conseguido exemplificar melhor.

Felipe.

Anonymous
Not applicable
Author

Começou a ficar claro o raciocínio.

Fiz o cálculo dos valores horas e minutos em separado e ficou assim:

Calculo de Horas3.png

de onde você tirou: "660"?

Outra dúvida é todo cálculo de horas para achar o valor em reais(moeda), deve obedecer esse formato/fórmula?

felipedl
Partner - Specialist III
Partner - Specialist III

Os 660 são para o segundo caso, das 35h.

Não necessariamente precisa ser esse cálculo em específico, mas deve dar uma boa diretriz pra pegar o número de horas trabalhadas sim.

Os cálculos na verdade só são feitos pra pegar as horas por cada número fracionário que é a representação numérica.

A implementação do valor pago pode ser considerando outras métricas (por exemplo horas extras e afins) que podem mudar o cálculo.

Anonymous
Not applicable
Author

Então no gráfico abaixo:

Calculo de Horas.png

na expressão eu coloquei assim:

=floor(Column(3)) * 24 * $(CRM_CTR_VLRHORA) + hour(Column(3)) * $(CRM_CTR_VLRHORA) + Minute(Column(3))/60 * $(CRM_CTR_VLRHORA)

mas não trouxe nenhum resultado.

Como devo colocar a fórmula de forma correta?

felipedl
Partner - Specialist III
Partner - Specialist III

Na verdade não precisaria colocar na expressão se já está calculado no script.

O código já faria esse cálculo e como expressão seria só colocar =sum(Calculo) que já resolveria.

sample.png

Felipe.

Anonymous
Not applicable
Author

Entendi, porém, esse valor deve ser apresentado conforme seleção, pois temos vários clientes. Então não vejo como poderei fazer os valores atualizarem se aplicar direto script.

felipedl
Partner - Specialist III
Partner - Specialist III

Oi Guilherme,

É só dispor os dois valores em uma tabela simples, está no print que mandei também (a tabela mais de cima).

O campo calculado pode ser utilizado como filtro para que possam ser selecionados os valores.

Felipe.