Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
1 year ago

DAX EEARLIER Error

Hola

Mi código sigue mostrando EARLIER / EARLIEST se refiere a un contexto de fila anterior que no existe.

Cualquier ayuda sería apreciada. Gracias.

Rango = RANKX(FILTRO('ForkLiftData', 'ForkLiftData' [Número SAP] = ANTERIOR('dador de montacargas' [número de savia]), 'dador de montacargas' [denominado carretilla elevadora],,ASC)

12 Replies

  • @Amos_Lim Intente usar esto

    Rango =
    VAR CurrentSAPNumber = 'ForkLiftData'[Número SAP]
    DEVOLUCIÓN
    RANKX(
    FILTER('ForkLiftData', 'ForkLiftData'[Número SAP] = CurrentSAPNumber),
    'ForkLiftData' [Nombre de la carretilla elevadora],
    ,
    ASC
    )

  • He tomado una captura de pantalla del error y me gustaría resolver el problema de la siguiente manera:

    Si aparece un usuario (resaltado con una flecha roja) para las carretillas elevadoras Nichiyu y TCM, su información solo debe mostrarse una vez. En la segunda fila, solo se debe mostrar "TCM" en lugar de repetir los detalles del usuario. Este enfoque hará que la tabla sea más fácil de leer, especialmente porque es una lista larga.

  • Hola @Amos_Lim,
    Intente usar esta medida DAX.


    Rank =
    RANKX(
    FILTER(
    'ForkLiftData',
    'ForkLiftData'[SAP Number] = SELECTEDVALUE('ForkLiftData'[SAP Number])
    ),
    'ForkLiftData'[ForkLift Name],
    ,
    ASC
    )

    🌟 ¡Espero que esta solución te ayude a desbloquear tu potencial de Power BI! Si le resultó útil, haga clic en "Marcar como solución" para guiar a otros hacia las respuestas que necesitan.
    💡 ¿Te gusta el esfuerzo? ¡Deja caer las felicitaciones! Su agradecimiento alimenta el espíritu comunitario y la innovación.
    🎖 Como orgullosos superusuarios y socios de Microsoft, estamos aquí para potenciar su recorrido de datos y a la comunidad de Power BI en general.
    🔗 ¿Tienes curiosidad por explorar más? [Descúbrelo aquí].
    ¡Sigamos construyendo juntos soluciones más inteligentes!

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Da un mensaje de error

      No se puede determinar un único valor para la columna 'ForkLift Name' en la tabla 'ForkLiftData'. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un único resultado

  • Hola @Amos_Lim ,

    ¿Cuál es el criterio para el rango? ¿Qué determinará que la carretilla elevadora esté en primera o última posición? Por favor, proporcione más detalles para ayudarlo.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Estoy tratando de usar DAX para clasificar las carretillas elevadoras para cada usuario.

      y use DAX para mostrar los detalles del usuario solo para la primera fila de cada usuario. Repita el mismo DAX para otra columna excepto Nombre de la carretilla elevadora

      En resumen:-

      Mi intención era hacer la tabla en el tablero de PBI que enumeraba a todos los usuarios y las carretillas elevadoras que están autorizados a conducir.

      y actualmente, la tabla muestra varias filas del mismo usuario, con su 'Nombre de usuario', 'Número SAP', 'Nombre de la carretilla elevadora', 'POC', 'Departamento' y 'Licencia válida hasta' si el usuario tiene acceso a diferentes carretillas elevadoras.


      Entonces, para el usuario repetido, me gustaría mostrar su información en la 1ª fila, y para la 2ª o 3ª o más con el mismo usuario solo se mostrarán los diferentes montacargas y el resto de las columnas mostrarán "En blanco".

  • Hola @Amos_Lim ,


    El error con EARLIER en la fórmula DAX se produce porque EARLIER necesita un contexto de fila externa válido al que hacer referencia, pero no hay ninguno en el cálculo.


    Solución

    Puedes reescribir tu fórmula para evitar ANTES por completo. Utilice variables o ADDCOLUMN para crear contextos de fila explícitamente.

    Fórmula actualizada para una columna calculada

    Si se trata de una columna calculada:

    Rank =
    RANKX(
        FILTER(
            'ForkLiftData',
            'ForkLiftData'[SAP Number] = EARLIER('ForkLiftData'[SAP Number])
        ),
        'ForkLiftData'[ForkLift Name],
        ,
        ASC
    )
    

    Esto debería funcionar si la columna se calcula fila por fila. Si no es así, considere las alternativas a continuación.