Alunos Dbechelli Postado Julho 7, 2023 Alunos Compartilhar Postado Julho 7, 2023 Boa tarde a todos, alguma dica de como devo tratar o erro em anexo? Deixei o projeto a disposição! Obrigado Aula Gravada.pbix Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Solução Dums Postado Julho 7, 2023 Alunos Solução Compartilhar Postado Julho 7, 2023 (editado) Olá, tudo bem? Cara, o DAX tem uma parada que deixa um lixo na enésima casa decimal, pelo que percebi isso está acontecendo no retorno da função COS, deixando o valor maior que 1 (é 1, mas lá na última casa decimal tem algum lixo), ai faz com que a ACOS considere isso um erro (fora da faixa de -1 até 1)... Fiz um tratamento na sua medida, pelos testes aqui deu boa: Distancia = VAR LatitudeReferencia = SELECTEDVALUE(Referencia[LATITUDE]) VAR LongitudeReferencia = SELECTEDVALUE(Referencia[LONGITUDE]) VAR Raio = [Valor Parâmetro] VAR paramArcos = COS(RADIANS(SELECTEDVALUE('Municípios'[LATITUDE]))) * COS(RADIANS(LatitudeReferencia)) * COS(RADIANS(SELECTEDVALUE('Municípios'[LONGITUDE])) - RADIANS(LongitudeReferencia)) + SIN(RADIANS(SELECTEDVALUE('Municípios'[LATITUDE]))) * SIN(RADIANS(LatitudeReferencia)) VAR paramArcosAjustado = SWITCH( TRUE(), paramArcos > 1, 1, paramArcos < -1, -1, paramArcos ) VAR vACOS = ACOS(paramArcosAjustado) * 6371 RETURN CALCULATE ( SUMX ( 'Municípios', IF (vACOS <= Raio && vACOS > 0, 1, 0 ) ) ) Na Distancia_2 também precisa este "ajuste": Distancia_2 = VAR x1 = RADIANS(SELECTEDVALUE('Municípios'[LATITUDE])) VAR x2 = RADIANS(SELECTEDVALUE(Referencia[LATITUDE])) VAR y1 = RADIANS(SELECTEDVALUE('Municípios'[LONGITUDE])) VAR y2 = RADIANS(SELECTEDVALUE(Referencia[LONGITUDE])) VAR Raio = 6371 VAR lcos = SIN(x1) * SIN(x2) + COS(x1) * COS(x2) * COS(y1-y2) VAR paramArcosAjustado = SWITCH( TRUE(), lcos > 1, 1, lcos < -1, -1, lcos ) VAR varco = ACOS(paramArcosAjustado) RETURN CALCULATE ( SUMX ( 'Municípios', IF ( varco * 6371 <= Raio && varco * 6371 > 0 , varco * Raio, BLANK() ) ) ) Editado Julho 7, 2023 por Dums 1 Link para o comentário Compartilhar em outros sites More sharing options...
0 Alunos Dbechelli Postado Julho 8, 2023 Autor Alunos Compartilhar Postado Julho 8, 2023 1 hora atrás, Dums disse: Olá, tudo bem? Cara, o DAX tem uma parada que deixa um lixo na enésima casa decimal, pelo que percebi isso está acontecendo no retorno da função COS, deixando o valor maior que 1 (é 1, mas lá na última casa decimal tem algum lixo), ai faz com que a ACOS considere isso um erro (fora da faixa de -1 até 1)... Fiz um tratamento na sua medida, pelos testes aqui deu boa: Distancia = VAR LatitudeReferencia = SELECTEDVALUE(Referencia[LATITUDE]) VAR LongitudeReferencia = SELECTEDVALUE(Referencia[LONGITUDE]) VAR Raio = [Valor Parâmetro] VAR paramArcos = COS(RADIANS(SELECTEDVALUE('Municípios'[LATITUDE]))) * COS(RADIANS(LatitudeReferencia)) * COS(RADIANS(SELECTEDVALUE('Municípios'[LONGITUDE])) - RADIANS(LongitudeReferencia)) + SIN(RADIANS(SELECTEDVALUE('Municípios'[LATITUDE]))) * SIN(RADIANS(LatitudeReferencia)) VAR paramArcosAjustado = SWITCH( TRUE(), paramArcos > 1, 1, paramArcos < -1, -1, paramArcos ) VAR vACOS = ACOS(paramArcosAjustado) * 6371 RETURN CALCULATE ( SUMX ( 'Municípios', IF (vACOS <= Raio && vACOS > 0, 1, 0 ) ) ) Na Distancia_2 também precisa este "ajuste": Distancia_2 = VAR x1 = RADIANS(SELECTEDVALUE('Municípios'[LATITUDE])) VAR x2 = RADIANS(SELECTEDVALUE(Referencia[LATITUDE])) VAR y1 = RADIANS(SELECTEDVALUE('Municípios'[LONGITUDE])) VAR y2 = RADIANS(SELECTEDVALUE(Referencia[LONGITUDE])) VAR Raio = 6371 VAR lcos = SIN(x1) * SIN(x2) + COS(x1) * COS(x2) * COS(y1-y2) VAR paramArcosAjustado = SWITCH( TRUE(), lcos > 1, 1, lcos < -1, -1, lcos ) VAR varco = ACOS(paramArcosAjustado) RETURN CALCULATE ( SUMX ( 'Municípios', IF ( varco * 6371 <= Raio && varco * 6371 > 0 , varco * Raio, BLANK() ) ) ) Perfeito, muito obrigado pela colaboração!!!! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Dbechelli
Boa tarde a todos, alguma dica de como devo tratar o erro em anexo? Deixei o projeto a disposição! Obrigado
Aula Gravada.pbix
Link para o comentário
Compartilhar em outros sites
2 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