Forum Discussion
LOOKUPVALUE con FILTER dentro de RANGE
Hola chicos,
Necesito ayuda con la lógica DAX en este..
En primer lugar, una visión general de la situación: Tengo una tabla ("ALERTAS") que contiene varias alertas de seguridad. Esta tabla está indexada por el nombre del controlador, pero a veces no me da el nombre, y el controlador se oculta, apareciendo como "NA". Tengo otra tabla ("MACRO") que contiene el inicio ("inicio") y el final ("fim") de cada viaje de conducir con una matrícula dada. Con el fin de descubrir quién estaba conduciendo el vehículo en el momento en que se generó la alerta de seguridad, quiero buscar quién era el conductor en la tabla "MACRO" para la matrícula y el momento en que se generó la alerta de seguridad.
La primera tabla se llama "ALERTAS" y contiene una columna de conductor ("motorista"), una columna de matrícula ("placa") y una marca de fecha y hora ("Hora de Início")
Tengo otra tabla llamada "MACRO" que contiene una columna de controlador ("nombre"), una columna de matrícula ("VEICULO"), una categoría de macro ("START/FIM") y una marca de fecha y hora ("inicio de datos").
Así que básicamente lo que necesito es:
para encontrar la OMS "NA" está en la tabla "Alertas" mirando hacia arriba en la tabla "MACRO", haciendo coincidir la matrícula y el intervalo de tiempo entre el inicio (início) y el final (fim)
Quiero crear una columna dentro de la tabla "ALERTAS" que hace lo siguiente:
- Coincide con la matrícula &&
- Para START/END - START, ALERTS[Hora de inicio] > MACRO[fecha de inicio] &&
- Para START/END - END, ALERTS[Hora de inicio] < MACRO[fecha de inicio]
- DEVUELVE el nombre del controlador ("nome") de la tabla MACRO(nunca habrá más de un resultado)
Realmente necesito ayuda con esto, he estado probando diferentes funciones LOOKUPVALUE() y CALCULATE() desde hace unos días y no he obtenido el resultado que necesito..
Por favor, ayuda
Gracias
Henry.
2 Replies
- ryan_mayuSuper User
Creé datos de muestra para esto.
puede intentar crear una columna
Column = VAR _type=MAXX(FILTER('MACRO','ALERTAS'[Placa]=MACRO[VEICULO]),'MACRO'[INICIO/FIM]) return if(_type="FIM",MAXX(FILTER('MACRO','ALERTAS'[Hora de inicio]<'MACRO'[data inicio]&&ALERTAS[Placa]=MACRO[VEICULO]),MACRO[nome]),MAXX(FILTER('MACRO','ALERTAS'[Hora de inicio]>='MACRO'[data inicio]&&ALERTAS[Placa]=MACRO[VEICULO]),MACRO[nome]))espero que esto sea útil
- henriquertNew Member
Gracias por la respuesta, @ryan_mayu
No pude ejecutar el comando debido a la memoria insuficiente..
Olvidé mencionar que mis dos mesas son enormes y contienen muchos miles de líneas.