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.
Estos son los datos:
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:
¿Cómo lograrlo?
Solved! Go to Solution.
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:
¿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
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]
)
)
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])
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]
)
)
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:
¿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
Gracias, @Eyelyn9 . Esperaba que existiera una solución más corta, pero su respuesta hace exactamente lo que describí, así que gracias!
¿Alguna idea más?
¿Quieres ignorar en blanco o contarlo como mínimo de todos??
@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.
@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])
@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."
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |