Forum Discussion

henriquert's avatar
henriquert
New Member
6 years ago

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")

henriquert_1-1596112514145.png

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").

asasasassa.PNG

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:

  1. Coincide con la matrícula &&
  2. Para START/END - START, ALERTS[Hora de inicio] > MACRO[fecha de inicio] &&
  3. Para START/END - END, ALERTS[Hora de inicio] < MACRO[fecha de inicio]
  4. 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

  • @henriquert

    Creé datos de muestra para esto.

    1.PNG2.PNG

    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]))

    3.PNG

    espero que esto sea útil

    • henriquert's avatar
      henriquert
      New 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.