Alunos Mateus_Silva Postado Novembro 17, 2021 Alunos Compartilhar Postado Novembro 17, 2021 Olá, Tudo bem? Verifiquei uma resposta, mas não consegui aplicar ao meu modelo essa tratativa dos dados que estou trabalhando de RH de atestado. Link no qual tentei fazer: Regras em vermelho são as que não consegue tratar: REGRA 1: MAIOR DATA DE ATESTADO (DATA FINAL) MENOS A MENOR DATA Medida = Quantidade de Dias (Já Existe) - OK REGRA 2: ONDE NAO TIVER MAIOR DATA(DATA FINAL), COLOCAR HOJE; Não tem -> (Comparar com o valor Today()) - OK REGRA 3: REFERENCIA PRIMEIO DIA E ULTIMO DIA DO MES; Não tem -> Quantos dias de atestado tem no mês(Contar e saber quantos foram utilizado em um mês no outro) REGRA 4: SEMPRE SOMAR MAIS 1 (PARA SABER EXATAMENTE QUANTOS DIAS SE PASSARAM) Quantidade de Dias (Já Existe) - OK REGRA 5: MAXIMO A SER CONSIDERADO PARA ABSENTEISMO: 15 DIAS DE ATESTADO Não tem (Setar valor no 15) Desde já, agradeço. Queria uma lógica nesse sentindo: Teste Absteismo = DATEDIFF( IF(fatestado[dtinicial] = dentro do mês, dtinicial, MIN(dCalendario[ID Data])), IF(fatestado[dtfinal] = dentro do mês, dtfinal, max(dCalendario[ID Data])) Modelo Atestado.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Solução Bruno Abdalla de Souza Postado Novembro 27, 2021 Alunos Solução Compartilhar Postado Novembro 27, 2021 @Mateus_Silva, veja se resolve a questão do absenteísmo, por favor. Dias de atestado Absenteísmo = VAR vDataMin = MIN(dCalendario[ID Data]) VAR vDataMax = MAX(dCalendario[ID Data]) RETURN SUMX( CALCULATETABLE( fAtestado, REMOVEFILTERS(dCalendario) ), VAR vIniAtestado = fAtestado[DTINICIO] VAR vDataLimAbsenteismo = vIniAtestado + 14 VAR vFimAtestado = fAtestado[DTFINAL] VAR vFimAtestadoAbsenteismo = IF( vFimAtestado <= vDataLimAbsenteismo, vFimAtestado, vDataLimAbsenteismo ) VAR vDataIni = IF( vDataMin > vIniAtestado, vDataMin, vIniAtestado ) VAR vDataFim = IF( vDataMax < vFimAtestadoAbsenteismo, vDataMax, vFimAtestadoAbsenteismo ) RETURN IF( vIniAtestado < vDataMax && vFimAtestadoAbsenteismo > vDataMin, DATEDIFF(vDataIni, vDataFim, DAY) + 1 ) ) ModeloAtestado.pbix 1 Link para o comentário Compartilhar em outros sites More sharing options...
1 Alunos Bruno Abdalla de Souza Postado Novembro 28, 2021 Alunos Compartilhar Postado Novembro 28, 2021 @Mateus_Silva, depois diga se resolveu, por favor. Caso tenha resolvido, favor encerrar o tópico. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 17, 2021 Alunos Compartilhar Postado Novembro 17, 2021 @Mateus_Silva, seguem minhas dúvidas: Regra 3: supondo um atestado que se inicia em 15/10/2021 e termina em 10/11/2021. Qual o resultado esperado? Regra 5: explique melhor o resultado desejado baseado em exemplos, por favor. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 17, 2021 Autor Alunos Compartilhar Postado Novembro 17, 2021 @Bruno Abdalla de Souza, de novo agradeço pela força. Segue devolutiva: Regra 3: supondo um atestado que se inicia em 15/10/2021 e termina em 10/11/2021. Qual o resultado esperado? R - Seria quando colocasse outubro 21(Mas restringia por conta dos 15 dias) dias e para novembro 10 dias. Regra 5: explique melhor o resultado desejado baseado em exemplos, por favor. EXEMPLO: ORIGINAL EXCEL: DADOS DA CELULAS EM CALCULO - 1 PESSOA COM ATESTADO EM 07/09/2021 A 05/10/2021 - 29 DIAS DE ATESTADO Data Final = 05/10/2021 Data Inicial = 07/09/2021 =SE((SE(K51<=$K$59;K51;$K$59)-(SE(J51>=$J$59;J51;$J$59)))>=14;14;(SE(K51<=$K$59;K51;$K$59)-(SE(J51>=$J$59;J51;$J$59))))+1 INTERPRETADA: =SE((SE(05/10/2021 <=30/09/2021;05/10/2021;30/09/2021)-(SE(07/09/2021>= 01/09/2021;07/09/2021;01/09/2021)))>=14;14;(SE(05/10/2021<=30/09/2021;05/10/2021;30/09/2021)-(SE(07/09/2021>=01/09/2021;07/09/2021;01/09/2021))))+1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 17, 2021 Alunos Compartilhar Postado Novembro 17, 2021 OK, vou tentar aqui depois. Outra coisa, sua dCalendario começa em 1900!! Tem necessidade? O ideal seria ter somente os anos que estão sendo utilizados na tabela de atestados. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 17, 2021 Autor Alunos Compartilhar Postado Novembro 17, 2021 9 minutos atrás, Bruno Abdalla de Souza disse: OK, vou tentar aqui depois. Outra coisa, sua dCalendario começa em 1900!! Tem necessidade? O ideal seria ter somente os anos que estão sendo utilizados na tabela de atestados. Nesse caso da dCalendario a gente setou a data mínima da dPessoa[DTNASCIMENTO], por que, nesse modelo do RH tem outras Fatos ai para colocar como exemplo copiei e colei em um excel a Fato(Colocando somente um ano) e a dCalendario. Mais muito obrigado pelas dicas. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 17, 2021 Alunos Compartilhar Postado Novembro 17, 2021 Existem pessoas então que não tem cadastro de data de nascimento. Antes de pegar o valor mínimo, filtre os valores nulos e depois pegue o valor mínimo. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 17, 2021 Autor Alunos Compartilhar Postado Novembro 17, 2021 51 minutos atrás, Bruno Abdalla de Souza disse: Existem pessoas então que não tem cadastro de data de nascimento. Antes de pegar o valor mínimo, filtre os valores nulos e depois pegue o valor mínimo. Isso mesmo apliquei aqui, muito obrigado pela dica. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 17, 2021 Alunos Compartilhar Postado Novembro 17, 2021 @Mateus_Silva, veja se a regra 3 é isso: Dias de atestado = VAR vDataMin = CALCULATE(MIN(dCalendario[ID Data])) VAR vDataMax = CALCULATE(MAX(dCalendario[ID Data])) RETURN SUMX( VALUES(fAtestado[CHAPA]), VAR vIniAtestado = CALCULATE(MAX(fAtestado[DTINICIO])) VAR vFimAtestado = CALCULATE(MAX(fAtestado[DTFINAL])) VAR vDataIni = IF( vDataMin > vIniAtestado, vDataMin, vIniAtestado ) VAR vDataFim = IF( vDataMax < vFimAtestado, vDataMax, vFimAtestado ) RETURN DATEDIFF(vDataIni, vDataFim, DAY) ) A regra 5 eu tento depois. ModeloAtestado.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 17, 2021 Alunos Compartilhar Postado Novembro 17, 2021 Regra 5: supondo um atestado que se inicia em 15/10/2021 e termina em 10/11/2021, ou seja, temos 16 dias em outubro e 10 dias em novembro, somando 26 dias. A visão será mensal? Se sim, o que deve ser mostrado em outubro e novembro? Se não, será mostrada como, em um cartão? Explique como vc quer que o resultado seja mostrado no Power BI e como chegou no resultado, por favor. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 17, 2021 Autor Alunos Compartilhar Postado Novembro 17, 2021 17 minutos atrás, Bruno Abdalla de Souza disse: Regra 5: supondo um atestado que se inicia em 15/10/2021 e termina em 10/11/2021, ou seja, temos 16 dias em outubro e 10 dias em novembro, somando 26 dias. A visão será mensal? Se sim, o que deve ser mostrado em outubro e novembro? Se não, será mostrada como, em um cartão? Explique como vc quer que o resultado seja mostrado no Power BI e como chegou no resultado, por favor. Nesse caso é pra mostrar 15 dias em outubro e 0 em novembro, pois pegaria a restrição da contagem de 15 dias. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 17, 2021 Alunos Compartilhar Postado Novembro 17, 2021 Olhando sua tabela de fAtestados, acho melhor transformar as duas colunas de data em uma só, adicionando uma coluna para dizer se é data inicial ou final. A coluna de RECCREATEDON vai servir para encontrar a outra data, sabendo que ambas pertencem ao mesmo atestado. Da maneira como está, o relacionamento com a dCalendario está na data inicial, mas só funciona quando a data inicial é dentro do mesmo mês. Quando não está no mesmo mês, é como se não existisse quando está no mês da data final. Até poderia tentar usar a função USERELATIONSHIP, mas acho que vai complicar. Ex: data inicial 28/01/2020 e data final de 03/02/2020 ==> quando a dCalendario está em Janeiro, encontra a data de 28/01/2020 e filtra. Quando a dCalendario está em Fevereiro, não encontra a data final, pois o relacionamento é com a data inicial e não coma final. Não sei se ficou claro o problema. Anexe as bases de dados fictícias, por favor, para que possa realizar as alterações. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 19, 2021 Autor Alunos Compartilhar Postado Novembro 19, 2021 Em 17/11/2021 em 18:23, Bruno Abdalla de Souza disse: Olhando sua tabela de fAtestados, acho melhor transformar as duas colunas de data em uma só, adicionando uma coluna para dizer se é data inicial ou final. A coluna de RECCREATEDON vai servir para encontrar a outra data, sabendo que ambas pertencem ao mesmo atestado. Da maneira como está, o relacionamento com a dCalendario está na data inicial, mas só funciona quando a data inicial é dentro do mesmo mês. Quando não está no mesmo mês, é como se não existisse quando está no mês da data final. Até poderia tentar usar a função USERELATIONSHIP, mas acho que vai complicar. Ex: data inicial 28/01/2020 e data final de 03/02/2020 ==> quando a dCalendario está em Janeiro, encontra a data de 28/01/2020 e filtra. Quando a dCalendario está em Fevereiro, não encontra a data final, pois o relacionamento é com a data inicial e não coma final. Não sei se ficou claro o problema. Anexe as bases de dados fictícias, por favor, para que possa realizar as alterações. Olá @Bruno Abdalla de Souza, tudo bem? Coloquei na transformação a data unificada ai criei a coluna "CONDICAO_DATA" que irá fazer a distinção entre a Inicio e Fim. Segue o modelo em anexo. Att, Modelo Atestado.pbix Modelo Atestado.xlsx Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 19, 2021 Alunos Compartilhar Postado Novembro 19, 2021 @Mateus_Silva, estava olhando seus dados. Removi as duplicadas da tabela fTaestados, pois tinham várias linhas duplicadas. Memso assim, olha um exemplo que encontrei: Veja que tem um atestado começando em 11/02/2020, mas não tem data final. Você vai resolver isso ou tem algum regra de negócio para resolver quando ocorre algo assim? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 19, 2021 Alunos Compartilhar Postado Novembro 19, 2021 Outra coisa, cada Atestado precisa ter um ID para identificar, que irá se repetir (data inicial e final). Mas ele será usado para identificar a data inicial/final. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 19, 2021 Autor Alunos Compartilhar Postado Novembro 19, 2021 1 hora atrás, Bruno Abdalla de Souza disse: @Mateus_Silva, estava olhando seus dados. Removi as duplicadas da tabela fTaestados, pois tinham várias linhas duplicadas. Memso assim, olha um exemplo que encontrei: Veja que tem um atestado começando em 11/02/2020, mas não tem data final. Você vai resolver isso ou tem algum regra de negócio para resolver quando ocorre algo assim? Nesse caso vou passar uma condição no Select assumindo o hoje na DTFINAL para valor Nulo(Para poder contabilizar os dias), obrigado pela observação. "CASE DTFINAL WHEN NULL THEN GETDATE() ELSE DTFINAL" Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 19, 2021 Alunos Compartilhar Postado Novembro 19, 2021 ou no SQL Server DTFINAL = ISNULL(DTFINAL, GETDATE()) 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 19, 2021 Autor Alunos Compartilhar Postado Novembro 19, 2021 2 horas atrás, Bruno Abdalla de Souza disse: Outra coisa, cada Atestado precisa ter um ID para identificar, que irá se repetir (data inicial e final). Mas ele será usado para identificar a data inicial/final. Olá, Bruno Coloquei o campo IDATESTADO e passe a condição do SQL ... muito obrigado. Segue o modelo em anexo. Att, Modelo Atestado.pbix Modelo Atestado.xlsx Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Frank Figueredo Postado Novembro 20, 2021 Alunos Compartilhar Postado Novembro 20, 2021 @Mateus_Silva Bom dia tudo bem? Ainda não ficou claro para mim qual a regra que você quer aplicar, qual problema você quer resolver. Já li tudo, mas ainda não está totalmente claro. Você poderia fazer um resumo conceitual do seu problema e o que você espera como resultado final? Quando você fala de Regra, está falando de Medida? Os filtros que vão ter na tela, são apenas esse do modelo de ano e mês? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 22, 2021 Autor Alunos Compartilhar Postado Novembro 22, 2021 Em 20/11/2021 em 10:57, Frank Figueredo disse: @Mateus_Silva Bom dia tudo bem? Ainda não ficou claro para mim qual a regra que você quer aplicar, qual problema você quer resolver. Já li tudo, mas ainda não está totalmente claro. Você poderia fazer um resumo conceitual do seu problema e o que você espera como resultado final? Quando você fala de Regra, está falando de Medida? Os filtros que vão ter na tela, são apenas esse do modelo de ano e mês? Olá @Frank Figueredo, bom dia! Tudo bem? Desculpa a demora em responder fui conversar com o analista de negócio da área antes para certificar o caminho. 1 -Ainda não ficou claro para mim qual a regra que você quer aplicar, qual problema você quer resolver. 2 - Já li tudo, mas ainda não está totalmente claro. Você poderia fazer um resumo conceitual do seu problema e o que você espera como resultado final? R 1 e 2 - Contar quantos dias de atestado o colaborador teve dentro do mês, com as regras que citei(Não sendo maior que 15 dias) e independente do mês que começou ou terminou, com isso, teremos um item para o calculo do absenteísmo e outros indicadores da área. 3 - Quando você fala de Regra, está falando de Medida? R 3 - Isso seria na medida para verificar o contexto da regra para contar os dias do atestado entre os meses. Ex: Atestado abaixo: DTINICIAL = 20/11/2021 DTFINAL = 08/11/2021 Resultado = 10 dias Mês de Novembro + 5 dias Mês de Dezembro(Indo até os 15 dias) No filtro mês de Outubro = Resultado mostrar 10 dias No filtro mês de Novembro = Resultado mostrar 5 dias No filtro ano = Resultado mostrar 15 dias. 4 - Os filtros que vão ter na tela, são apenas esse do modelo de ano e mês? R 4 - Não, além desses teria outros filtros. Ex: Contexto de Diretoria, Setor, Unidade, CID e entre outros das Dimensões que possuí no modelo. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Frank Figueredo Postado Novembro 23, 2021 Alunos Compartilhar Postado Novembro 23, 2021 Em 22/11/2021 em 08:49, Mateus_Silva disse: DTINICIAL = 20/11/2021 DTFINAL = 08/11/2021 Resultado = 10 dias Mês de Novembro + 5 dias Mês de Dezembro(Indo até os 15 dias) @Mateus_Silva a DTFINAL não era pra ser 08/12/2021, ao invés de 08/11/2021? Considerando que seja Dezembro o correto, quando você diz: Citar No filtro mês de Outubro = Resultado mostrar 10 dias No filtro mês de Novembro = Resultado mostrar 5 dias Você quis Dizer Novembro e Dezembro nos filtros? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 24, 2021 Autor Alunos Compartilhar Postado Novembro 24, 2021 11 horas atrás, Frank Figueredo disse: @Mateus_Silva a DTFINAL não era pra ser 08/12/2021, ao invés de 08/11/2021? Considerando que seja Dezembro o correto, quando você diz: Você quis Dizer Novembro e Dezembro nos filtros? @Mateus_Silva a DTFINAL não era pra ser 08/12/2021, ao invés de 08/11/2021? Isso desculpe pelo o erro, mas é isso mesmo. Você quis Dizer Novembro e Dezembro nos filtros? Isso no caso se ele filtrasse o ano desse atestado ou os dois meses que ele pertence mostrar os 15 dias serviria para os cálculos de acumulados. Att, Mateus Silva. Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Bruno Abdalla de Souza Postado Novembro 24, 2021 Alunos Compartilhar Postado Novembro 24, 2021 @Mateus_Silva, veja se esta medida resolva a questão 3. Dias de atestado = VAR vDataMin = MIN(dCalendario[ID Data]) VAR vDataMax = MAX(dCalendario[ID Data]) RETURN SUMX( CALCULATETABLE( fAtestado, REMOVEFILTERS(dCalendario) ), VAR vIniAtestado = fAtestado[DTINICIO] VAR vFimAtestado = fAtestado[DTFINAL] VAR vDataIni = IF( vDataMin > vIniAtestado, vDataMin, vIniAtestado ) VAR vDataFim = IF( vDataMax < vFimAtestado, vDataMax, vFimAtestado ) RETURN IF( vIniAtestado < vDataMax && vFimAtestado > vDataMin, DATEDIFF(vDataIni, vDataFim, DAY) + 1 ) ) ModeloAtestado.pbix 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Roseane Postado Novembro 27, 2021 Alunos Compartilhar Postado Novembro 27, 2021 @Mateus_Silva Olá tudo bem? Já resolveu ou ainda está com problemas? Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Mateus_Silva Postado Novembro 27, 2021 Autor Alunos Compartilhar Postado Novembro 27, 2021 10 horas atrás, Roseane disse: @Mateus_Silva Olá tudo bem? Já resolveu ou ainda está com problemas? Olá Roseane, bom dia! Tudo bem? Ainda não estava ontem conversando com o Bruno, está faltando a gente realizar a regra dos 15 dias úteis para ele assumir um valor falamos até sobre setar uma nova data quando esse limite chegasse, mas não concluído ainda. Qualquer dúvida, favor contatar. Att, Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Mateus_Silva
Olá, Tudo bem?
Verifiquei uma resposta, mas não consegui aplicar ao meu modelo essa tratativa dos dados que estou trabalhando de RH de atestado.
Link no qual tentei fazer:
Regras em vermelho são as que não consegue tratar:
REGRA 1:
MAIOR DATA DE ATESTADO (DATA FINAL) MENOS A MENOR DATA
Medida = Quantidade de Dias (Já Existe) - OK
REGRA 2:
ONDE NAO TIVER MAIOR DATA(DATA FINAL), COLOCAR HOJE;
Não tem -> (Comparar com o valor Today()) - OK
REGRA 3:
REFERENCIA PRIMEIO DIA E ULTIMO DIA DO MES;
Não tem -> Quantos dias de atestado tem no mês(Contar e saber quantos foram utilizado em um mês no outro)
REGRA 4:
SEMPRE SOMAR MAIS 1 (PARA SABER EXATAMENTE QUANTOS DIAS SE PASSARAM)
Quantidade de Dias (Já Existe) - OK
REGRA 5:
MAXIMO A SER CONSIDERADO PARA ABSENTEISMO: 15 DIAS DE ATESTADO
Não tem (Setar valor no 15)
Desde já, agradeço.
Queria uma lógica nesse sentindo:
Modelo Atestado.pbix
Link para o comentário
Compartilhar em outros sites
26 respostass a esta questão
Posts Recomendados
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora