Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Countifs conatin text

Hola

Tengo una tabla y contiene dos columnas.

1. Si el mismo artículo tiene "No está bien", devuelva "No está bien". 2. Si el mismo artículo tiene "No está bien" y Naranja, devuelva "No está bien".
2. Si el mismo artículo tiene naranja, devuelva naranja.
3. Si el mismo artículo tiene verde, devuelva verde.
4. Si el mismo artículo tiene Naranja o Verde en este caso devuelva Verde

Estoy intentando intentar debajo del código DAX pero "La expresión True/False no especifica una columna. Cada expresión True/False utilizada como expresión de filtro de tabla debe hacer referencia exactamente a una columna."

Respuesta = IF(CALCULATE(COUNTROWS(Data),Data[Colour Code]="Not Okay"),"Not Okay" || IF(CALCULATE(COUNTROWS(Data),Data[Code],"Orange")=CALCULATE(COUNTROWS(Data),Data[Colour Code],"Green"),Data[Code],"Green"))

Estoy buscando una nueva columna de cálculo (DAX)

En Excel aplico la siguiente fórmula =IF(COUNTIFS($A$3:$A$101,$A 3,$B$3:$B$101,"Not Okay"),"Not Okay",IF(COUNTIFS($A$3:$A$101,$A 3,$B$3:$B$101,"Orange")=COUNTIFS($A$3:$A$101,$A 3),$B 3,"Verde")). Me gustaría aplicar la misma lógica en PBI pero estoy recibiendo un error

Saxon10_0-1632694041925.png

https://www.dropbox.com/s/q4rn361y01r40x2/Countifs%20contain%20text-26-09-21.pbix?dl=0

Datos:

ArtículoCódigoResultado deseado
123NaranjaNaranja
124VerdeVerde
125NaranjaNaranja
126VerdeVerde
127NaranjaNaranja
128NaranjaNaranja
135NaranjaVerde
135VerdeVerde
136No está bienNo está bien
136No está bienNo está bien
137NaranjaNaranja
137NaranjaNaranja
137NaranjaNaranja
138VerdeVerde
138NaranjaVerde
138NaranjaVerde
139NaranjaNaranja
139NaranjaNaranja
140VerdeVerde
140NaranjaVerde
141NaranjaNaranja
141NaranjaNaranja
141NaranjaNaranja
142VerdeVerde
142NaranjaVerde
142NaranjaVerde
143VerdeVerde
143VerdeVerde
143NaranjaVerde
144No está bienNo está bien
144No está bienNo está bien
144NaranjaNo está bien
145No está bienNo está bien
145No está bienNo está bien
145No está bienNo está bien
145No está bienNo está bien
147VerdeVerde
147VerdeVerde
148NaranjaNaranja
148NaranjaNaranja
149VerdeVerde
149VerdeVerde
150NaranjaNaranja
150NaranjaNaranja
151VerdeVerde
151VerdeVerde
152NaranjaNaranja
152NaranjaNaranja
152NaranjaNaranja
153No está bienNo está bien
153No está bienNo está bien
153NaranjaNo está bien
1999No está bienNo está bien
1999No está bienNo está bien
1999NaranjaNo está bien
155VerdeNo está bien
155No está bienNo está bien
156NaranjaVerde
156VerdeVerde
157NaranjaNaranja
157NaranjaNaranja
154No está bienNo está bien
154NaranjaNo está bien
154No está bienNo está bien
155No está bienNo está bien
155VerdeNo está bien
155NaranjaNo está bien
156NaranjaVerde
156VerdeVerde
156NaranjaVerde
156NaranjaVerde
198No está bienNo está bien
198No está bienNo está bien
198No está bienNo está bien
198No está bienNo está bien
198No está bienNo está bien
200VerdeVerde
200VerdeVerde
200VerdeVerde
200VerdeVerde
200VerdeVerde
200VerdeVerde
198No está bienNo está bien
198No está bienNo está bien
198No está bienNo está bien
198No está bienNo está bien
198No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111No está bienNo está bien
21111NaranjaNo está bien

  • @Saxon10 ajustar mi expresión DAX de la siguiente manera:

    Answer1 = 
    VAR __code = Report[Item]
    VAR __table = CALCULATETABLE ( Data,  Data[Item] = __code )
    VAR __noOk = COUNTX ( __table, IF ( [Code] = "Not Okay", 1 ) )
    VAR __orange = COUNTX ( __table, IF ( [Code] = "Orange", 1 ) )
    VAR __green = COUNTX ( __table, IF ( [Code] = "Green", 1 ) )
    
    RETURN
    SWITCH ( TRUE(),
        NOT ISBLANK ( __noOk ), "Not Okay",
        NOT ISBLANK ( __orange ) && NOT ISBLANK ( __green ), "Green", 
        NOT ISBLANK ( __orange ), "Orange",
        NOT ISBLANK ( __green ), "Green",
        "Unknown"
    )

    Síguenos en LinkedIn

    Revisa mi última publicación de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

    Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

  • Syndicate_Admin's avatar
    Syndicate_Admin
    4 years ago

    Hola

    Escriba esta fórmula de columna calculada en la hoja de cálculo Informe

    Answer = if(CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])))=0,"NA",if(CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])&&DATA[CODE]="Not Okay"))>=1,"Not Okay",IF(CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])))=CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])&&DATA[CODE]="Orange")),"Orange","Green")))

    Espero que esto ayude.

8 Replies

  • @Saxon10 agregar una nueva columna con la siguiente expresión:

    Answer = 
    VAR __code = Data[Item]
    VAR __table = CALCULATETABLE ( Data, ALL ( Data ), Data[Item] = __code )
    VAR __noOk = COUNTX ( __table, IF ( [Code] = "Not Okay", 1 ) )
    VAR __orange = COUNTX ( __table, IF ( [Code] = "Orange", 1 ) )
    VAR __green = COUNTX ( __table, IF ( [Code] = "Green", 1 ) )
    
    RETURN
    SWITCH ( TRUE(),
        NOT ISBLANK ( __noOk ), "Not Okay",
        NOT ISBLANK ( __orange ) && NOT ISBLANK ( __green ), "Green", 
        NOT ISBLANK ( __orange ), "Orange",
        NOT ISBLANK ( __green ), "Green",
        "Unknown"
    )

    Síguenos en LinkedIn

    Revisa mi última publicación de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

    Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

  • Hola

    Esta fórmula de columna calculada funciona

    =if(CALCULATE(COUNTROWS(Data),FILTER(Data,Data[Item]=EARLIER(Data[Item])&&Data[Code]="Not Okay"))>=1,"Not Okay",IF(CALCULATE(COUNTROWS(Data),FILTER(Data,Data[Item]=EARLIER(Data[Item])))=CALCULATE(COUNTROWS(Data),FILTER(Data,Data[Item]=EARLIER(Data[Item])&&Data[Code]="Orange")),"Orange","Green"))

    Espero que esto ayude.

    Untitled.png

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      @Ashish_Mathur y @parry2k ,

      Gracias por su solución. Ambas soluciones están funcionando bien.

      Necesito un consejo más, por favor. Me gustaría obtener el mismo resultado con dos tablas entre medias.

      Tengo dos tablas de datos e informe. Las columnas de elementos de ambas tablas se han duplicado.

      Me gustaría extraer el código de color de la tabla de datos a la tabla de informes de acuerdo con el elemento.

      1. Si el mismo artículo tiene "No está bien", devuelva "No está bien". 2. Si el mismo artículo tiene "No está bien" y Naranja, devuelva "No está bien".
      2. Si el mismo artículo tiene naranja, devuelva naranja.
      3. Si el mismo artículo tiene verde, devuelva verde.
      4. Si el mismo artículo tiene Naranja o Verde en este caso devuelva Verde

      5. Si el artículo no se encuentra en la tabla de datos, devuelva "NA".

      Algunos de los elementos se repiten 2 veces en la tabla de datos, pero en la tabla de informes tal vez sea único. Ejemplo -135.

      Archivo PBI adjunto para su referencia.

      https://www.dropbox.com/s/fjc544dmnk6jiie/Countifs%20contain%20text-1-26-09-21.pbix?dl=0

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Hola

        Escriba esta fórmula de columna calculada en la hoja de cálculo Informe

        Answer = if(CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])))=0,"NA",if(CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])&&DATA[CODE]="Not Okay"))>=1,"Not Okay",IF(CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])))=CALCULATE(COUNTROWS(DATA),FILTER(DATA,DATA[ITEM]=EARLIER(REPORT[ITEM])&&DATA[CODE]="Orange")),"Orange","Green")))

        Espero que esto ayude.

  • @Saxon10 ajustar mi expresión DAX de la siguiente manera:

    Answer1 = 
    VAR __code = Report[Item]
    VAR __table = CALCULATETABLE ( Data,  Data[Item] = __code )
    VAR __noOk = COUNTX ( __table, IF ( [Code] = "Not Okay", 1 ) )
    VAR __orange = COUNTX ( __table, IF ( [Code] = "Orange", 1 ) )
    VAR __green = COUNTX ( __table, IF ( [Code] = "Green", 1 ) )
    
    RETURN
    SWITCH ( TRUE(),
        NOT ISBLANK ( __noOk ), "Not Okay",
        NOT ISBLANK ( __orange ) && NOT ISBLANK ( __green ), "Green", 
        NOT ISBLANK ( __orange ), "Orange",
        NOT ISBLANK ( __green ), "Green",
        "Unknown"
    )

    Síguenos en LinkedIn

    Revisa mi última publicación de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

    Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.