1
resposta

Adaptação de fórmula do Excel, para DAX

Olá. Tenho uma fórmula que uso no excel para calcular se a localização informada por um motorista está dentro de um raio compatível com a localização planejada para que ele esteja.

Referência excel:

X | Y | Z | AA

-15,87662 | -48,09634 | -15,90052 | -47,78601

Fórmula em excel:

=6371 * (ACOS(COS(RADIANOS(90-X1)) * COS(RADIANOS(90-Z1)) + SEN(RADIANOS(90-X1)) * SEN(RADIANOS(90 - Z1)) * COS(RADIANOS(Y1 - AA1)))) * 1,15

Referência PowerBi:

Localização X | Localização Y | Localização Planejada X | Localização Planejada Y

-15,87662 | -48,09634 | -15,90052 | -47,78601

Fórmula que tentei em DAX:

= 6371 * (ACOS(COS(RADIANS(90 - ALL(BD_LOGISTICS[Localização X]))) * COS(RADIANS(90 - ALL(BD_LOGISTICS[Localização Planejada X]))) + SIN(RADIANS(90 - ALL(BD_LOGISTICS[Localização X]))) * SIN(RADIANS(90 - ALL(BD_LOGISTICS[Localização Planejada X]))) * COS(RADIANS(ALL(BD_LOGISTICS[Localização Y]) - ALL(BD_LOGISTICS[Localização Planejada Y])))) * 1,15)

Não to conseguindo encontrar o erro sintax aqui. Alguém me da uma luz?

1 resposta

Oii Gustavo, tudo bom?

Sinto muito pela demora em retornar com sua resposta, vamos lá:

Olhando por aqui, você não precisa utilizar o ALL(), porque todos os dados estão em uma mesma tabela. Então, você tem duas opções.

Você pode criar uma coluna na tabela:

= 6371 * (ACOS(COS(RADIANOS(90-[Localização X])) * COS(RADIANOS(90-[Localização Planejada X])) + SEN(RADIANOS(90-[Localização X])) * SEN(RADIANOS(90 - [Localização Planejada X])) * COS(RADIANOS([Localização Y] - [Localização Planejada Y]))) * 1,15

Ou, se quiser criar uma medida:

= SUMX( 'BD_LOGISTICS', 6371 * (ACOS(COS(RADIANOS(90-[Localização X])) * COS(RADIANOS(90-[Localização Planejada X])) + SEN(RADIANOS(90-[Localização X])) * SEN(RADIANOS(90 - [Localização Planejada X])) * COS(RADIANOS([Localização Y] - [Localização Planejada Y]))) * 1,15
)

Espero que isso ajude. Qualquer coisa é só falar, tá bom? :)