Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Zyg_D
Continued Contributor
Continued Contributor

Obtener valores en blanco en lugar de MIN o MAX reales en una categoría

Estos son los datos:

data.JPG

Quiero crear una tabla basada en Table1 que contendría cada categoría una sola vez y MIN de la categoría de una columna y MAX de la categoría de otra columna. Lo complicado es que si existe un valor en blanco en la categoría, quiero devolver el valor en blanco. Este es el resultado deseado:

result.JPG

¿Cómo lograrlo?

2 ACCEPTED SOLUTIONS
v-eqin-msft
Community Support
Community Support

Hola @Zyg_D ,

Según mi opinión, desea crear una tabla con tres columnas: Categoría distinta, Valor mínimo y Valor máximo2 , ¿verdad?

Puede usar la siguiente fórmula:

Crear columnas

minValue =
IF (
    CALCULATE (
        ISBLANK ( SELECTEDVALUE ( 'Table1'[Value] ) ),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK (),
    CALCULATE ( MIN ( 'Table1'[Value] ), ALLEXCEPT ( 'Table1', Table1[Category] ) )
)

maxValue2 =
IF (
    CALCULATE (
        ISBLANK ( SELECTEDVALUE ( 'Table1'[Value2] ) ),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK (),
    CALCULATE ( MAX ( 'Table1'[Value2] ), ALLEXCEPT ( 'Table1', Table1[Category] ) )
)

Crear tabla

Table 2 =
DISTINCT (
    SELECTCOLUMNS (
        'Table1',
        "Cat", [Category],
        "Val", [minValue],
        "Val2", [maxValue2]
    )
)

Mi visualización tiene este aspecto:

8.28.3.1.png

¿Es el resultado lo que quieres? Si tiene alguna pregunta, cargue algunas muestras de datos y la salida esperada.

Por favor, enmascarar los datos confidenciales antes de cargar.

Saludos

Eyelyn Qin

View solution in original post

Zyg_D
Continued Contributor
Continued Contributor

Basándome en la respuesta de @Eyelyn9 pude crear lo que necesitaba.

En el Cuadro1 agregué 2 columnas:

minValue = 
IF (
    CALCULATE (
        COUNTBLANK(Table1[Value]),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK(),
    CALCULATE ( 
        MIN ( Table1[Value] ), 
        ALLEXCEPT ( Table1, Table1[Category] ) 
    )
)
maxValue2 = 
IF (
    CALCULATE (
        COUNTBLANK(Table1[Value2]),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK(),
    CALCULATE ( 
        MAX ( Table1[Value2] ), 
        ALLEXCEPT ( Table1, Table1[Category] ) 
    )
)

Y luego creó una nueva tabla:

ResultTable = 
DISTINCT (
    SELECTCOLUMNS (
        'Table1',
        "Cat", [Category],
        "Val", [minValue],
        "Val2", [maxValue2]
    )
)

View solution in original post

9 REPLIES 9
Zyg_D
Continued Contributor
Continued Contributor

Lo siento @Eyelyn9 tuve que escribir otra respuesta, porque encontré un error en el tuyo.

La siguiente línea en el código no comprueba eficazmente si hay valores en blanco en la columna filtrada (si en la columna filtrada no hay valores en blanco, pero varios números diferentes, SELECTEDVALUE devuelve también en blanco, por lo que en mi caso no es una buena opción):

ISBLANK ( SELECTEDVALUE ( 'Table1'[Value] ) )

He cambiado la línea con esto:

COUNTBLANK(Table1[Value])

Zyg_D
Continued Contributor
Continued Contributor

Basándome en la respuesta de @Eyelyn9 pude crear lo que necesitaba.

En el Cuadro1 agregué 2 columnas:

minValue = 
IF (
    CALCULATE (
        COUNTBLANK(Table1[Value]),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK(),
    CALCULATE ( 
        MIN ( Table1[Value] ), 
        ALLEXCEPT ( Table1, Table1[Category] ) 
    )
)
maxValue2 = 
IF (
    CALCULATE (
        COUNTBLANK(Table1[Value2]),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK(),
    CALCULATE ( 
        MAX ( Table1[Value2] ), 
        ALLEXCEPT ( Table1, Table1[Category] ) 
    )
)

Y luego creó una nueva tabla:

ResultTable = 
DISTINCT (
    SELECTCOLUMNS (
        'Table1',
        "Cat", [Category],
        "Val", [minValue],
        "Val2", [maxValue2]
    )
)
v-eqin-msft
Community Support
Community Support

Hola @Zyg_D ,

Según mi opinión, desea crear una tabla con tres columnas: Categoría distinta, Valor mínimo y Valor máximo2 , ¿verdad?

Puede usar la siguiente fórmula:

Crear columnas

minValue =
IF (
    CALCULATE (
        ISBLANK ( SELECTEDVALUE ( 'Table1'[Value] ) ),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK (),
    CALCULATE ( MIN ( 'Table1'[Value] ), ALLEXCEPT ( 'Table1', Table1[Category] ) )
)

maxValue2 =
IF (
    CALCULATE (
        ISBLANK ( SELECTEDVALUE ( 'Table1'[Value2] ) ),
        ALLEXCEPT ( Table1, Table1[Category] )
    ),
    BLANK (),
    CALCULATE ( MAX ( 'Table1'[Value2] ), ALLEXCEPT ( 'Table1', Table1[Category] ) )
)

Crear tabla

Table 2 =
DISTINCT (
    SELECTCOLUMNS (
        'Table1',
        "Cat", [Category],
        "Val", [minValue],
        "Val2", [maxValue2]
    )
)

Mi visualización tiene este aspecto:

8.28.3.1.png

¿Es el resultado lo que quieres? Si tiene alguna pregunta, cargue algunas muestras de datos y la salida esperada.

Por favor, enmascarar los datos confidenciales antes de cargar.

Saludos

Eyelyn Qin

Zyg_D
Continued Contributor
Continued Contributor

Gracias, @Eyelyn9 . Esperaba que existiera una solución más corta, pero su respuesta hace exactamente lo que describí, así que gracias!

Zyg_D
Continued Contributor
Continued Contributor

¿Alguna idea más?

Sujit_Thakur
Solution Sage
Solution Sage

¿Quieres ignorar en blanco o contarlo como mínimo de todos??

Zyg_D
Continued Contributor
Continued Contributor


@Sujit_Thakur escribió:

¿Quieres ignorar en blanco o contarlo como mínimo de todos??


No quiero ignorar los valores en blanco. si están allí, deben aparecer ambos, como mínimos y como máximos.

amitchandak
Super User
Super User

@Zyg_D, intente

maxx(filter(table,not(isblank(table[value]))),table[Value])
minx(filter(table,not(isblank(table[value]))),table[Value])

maxx(filter(table,not(isblank(table[value2]))),table[Value2])
minx(filter(table,not(isblank(table[value2]))),table[Value2])

Zyg_D
Continued Contributor
Continued Contributor


@amitchandak escribió:

@Zyg_D,intente

maxx(filter(table,not(isblank(table[value]))),table[Value])
minx(filter(table,not(isblank(table[value]))),table[Value])

maxx(filter(table,not(isblank(table[value2]))),table[Value2])
minx(filter(table,not(isblank(table[value2]))),table[Value2])


Por favor, detallé lea más sobre su respuesta. Así las cosas, es imposible saber cómo debo conseguir mi mesa deseada.

Error: "La expresión especificada en la consulta no es una expresión de tabla válida."

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.