Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
2 years ago

Ayuda de DAX

No puedo resolver este DAX en absoluto.

Tengo una tabla de hechos para contar elementos.

Un puñado de objetos. El identificador de elemento es -1 cuando no hay ningún elemento

y un Dim de los requisitos del proyecto

Quiero saber todos los requisitos sin artículos

Tengo DAX subyacente para obtener el recuento distinto de requisitos del proyecto (con el que alguien me ayudó hace un tiempo. asegurarse de que el identificador en Dim esté vinculado a la tabla de hechos

CALCULAR(

SUMX(

VALUES('Dim Proj Req'[ID de requerimiento]),

1

),

'Dim Proj Req'[Req ID]<> "-1", // Esto es para que no contemos la fila predeterminada sin elemento

'Tabla de hechos')

Y he intentado crear DAX usando lo anterior de esta manera

Total de requerimientos Sin artículos =

CALCULATE( total Req,'Fact'[Item Key]= "-1")

Es -1 donde no hay un documento

Pero todavía me da un 1 contra los ID de artículos y no puedo entender por qué.

P. ej..

ID de solicitud Clave de artículo ID de artículo Total No hay artículos

1 1 I1 1

1 2 I2 1

2 -1 -1 1

Por lo tanto, solo el último debe tener No Items = 1

Simplemente no puedo hacer que esto funcione. ¿Alguien puede darme una idea de dónde me estoy equivocando?

8 Replies

  • @DebbieE Bueno, por un lado, la fórmula original no parece del todo correcta, ya que ninguno de los ID de Rec en su tabla es -1 y, por lo tanto, no se filtrará nada. Déjame ver si puedo crear una buena solución para esto.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Solo estaba pensando

       FILTER( 'Dim Proj Req', [Item ID] <> "-1" ),

      El ID de los elementos está en Items Dim y no en Dim Proj Req, por lo que lo anterior no llega allí

  • @DebbieE Aquí hay una posible solución. Este es un reemplazo de su medida original:

    Measure = 
    VAR __Result =
        COUNTROWS(
            DISTINCT(
                SELECTCOLUMNS(
                    FILTER( 'Dim Proj Req', [Item ID] <> "-1" ),
                    "__RecID", [Req ID]
                )
            )
        )
    RETURN
        __Result

    Y esta es la segunda medida. PBIX se adjunta debajo de la firma.

    Measure 2 = IF( [Measure] = BLANK(), 1, BLANK() )

  • He renunciado a este DAX

    En el Dim agregué una nueva columna en la -1 predeterminada, tengo ningún elemento y todo lo demás como elemento.

    A continuación, puedo usar el primer DAX para el número de requisitos del proyecto en un gráfico de barras con el descriptor Estado del elemento Creación de dos barras.

    No es lo que quería, pero el DAX me ha ganado una vez más.

  • Hola @DebbieE ,

    Gracias por la respuesta de Greg_Deckler .

    Su requisito es: filtrar el número de ID de solicitud cuando Clave de elemento = "-1". ¿Lo estoy entendiendo bien?

    Puede modificar la sintaxis de la medida para:

    Measure = 
    CALCULATE(
        DISTINCTCOUNT('Dim Proj Req'[Req ID]),
        FILTER(
            'Fact',
            'Fact'[Item Key] = "-1"
        )
    )

    Recuerde crear la relación correcta entre la tabla Dim y la tabla Fact.

    Le agradecería que me proporcionara el archivo pbix.

    Recuerde quitar los datos confidenciales y no inicie sesión en su cuenta en Power BI Desktop al cargar el archivo pbix.

    Si tiene alguna otra pregunta, no dude en ponerse en contacto conmigo.

    Saludos
    Yang
    Equipo de apoyo a la comunidad

    Si hay alguna publicación que ayude, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
    Si no entiendo sus necesidades o aún tiene problemas al respecto, no dude en hacérnoslo saber. ¡Muchas gracias!

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Está bien. No puedo conseguirte el archivo pbix. Revisé las relaciones en el modelo varias veces y todo es correcto. Y he decidido no seguir adelante con este DAX y hacer algo más simple en su lugar.

      Si no puedo entenderlo. Puedo; Déjalo para que alguien más lo cuide