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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Matriz de colores por total de columnas

Hola

Las imágenes de abajo son la misma matriz que tienen una fórmula, que cambia dinamically sobre la selección de un botón - absoluto o porcentaje. Estoy tratando de encontrar una manera de hacer el color del fondo por columna en lugar de todos los valores de la matriz.

Por ejemplo: En la columna 7 - 38,04 debe colorearlo en rojo, ya que es el valor más alto.

De todos modos esto se puede hacer?

afbraga66_2-1626424298762.png

afbraga66_1-1626424247521.png

Estas son las opciones de formato de color.

afbraga66_3-1626425490202.png

Gracias.

Saludos

Andre

21 REPLIES 21
Syndicate_Admin
Administrator
Administrator

Hey @v-janeyg-msft ,

Lo entiendo, por supuesto. Aquí hay una aplicación que se puede usar como ejemplo.

https://we.tl/t-XlZUWPgAKL

En la imagen de abajo el mapa de color debe por columna - por lo que 2026 -rojo, 657 - rojo y la misma lógica para el resto de los valores. El color debe establecerse en un valor de columna por evaluación de valor de columna, en lugar de todos los valores de la tabla.

Las columnas 5, 6 y 7 son valores de una sola columna que representa el mes.

afbraga66_0-1626942957487.png

Saludos

Andre

@afbraga66 ¿Puede compartir un archivo de datos falsos de muestra?

@v-janeyg-msftestaba en el post anterior. Es éste - https://we.tl/t-XlZUWPgAKL. La interfaz de usuario del mensaje no me permitirá agregar uno de otra manera, así que agrego para ponerlo en un enlace.

Allí, @afbraga66

Prueba así:

Measure = 
var a =MAXX(ALL(DOWNTIME[NOME_TIPO]),[mDuration(min)])
var b =MINX(ALL(DOWNTIME[NOME_TIPO]),[mDuration(min)])
return SWITCH(TRUE(),[mDuration(min)]=a,"Red",[mDuration(min)]=b,"Green","Yellow")

vjaneygmsft_1-1626948256499.png

¿He respondido a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no, por favor no dude en preguntarme.


Saludos

Equipo de apoyo a la comunidad _ Janey

Hey @v-janeyg-msft ,

Funciona en el archivo de prueba.

He intentado aplicarlo a mi informe y este es el resultado. En general, está bien, no estoy seguro de por qué no hay color rojo en la columna del 7º mes para el valor 23,74. ¿Alguna idea de lo que podría estar causando?

afbraga66_0-1627073176500.png

Saludos

Andre

@afbraga66

El contexto es diferente, el resultado será diferente, no sé cómo son los datos y el contexto en su archivo de origen. ¿Cuál es la medida en valor?

vjaneygmsft_0-1627262978409.png

Saludos

Equipo de apoyo a la comunidad _ Janey

Hey @v-janeyg-msft ,

Entiendo lo que quiere decir. Los datos son prácticamente los mismos, solo menos campos de columna para la tabla en el modelo, pero los campos que se consideran para hacer que la clave sea única ya están allí. Al final también tiene menos filas solo porque borré el resto. Esa es la razón de mi confusión sobre por qué no está funcionando.

¿Hay alguna manera de exportar la tabla de modelo completa a un excel o csv para crear un nuevo archivo basado en él?

gracias

Andre

@afbraga66

Los datos no son importantes, es porque el contexto cambia debido a lo que cambió. ¿Cómo juzgamos si no lo dices? Debes saber que el resultado de la medida es muy flexible.

Prueba: cambie 'all' por 'allselected' en la medida.

¿He respondido a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.


Saludos

Equipo de apoyo a la comunidad _ Janey

Hola @v-janeyg-msft ,

Ok, así que la medida y los campos en el objeto visual son exactamente los mismos que mi ejemplo.

De hecho, hay algunas diferencias en otras cosas.

Tengo estos filtros en visual y en la página.

afbraga66_0-1627465979597.png

También tenga un campo de segmentación de datos en la página denominada NOME_AREA, que afecta al objeto visual de la tabla.

Gracias.

Saludos

Andre

Allí, @afbraga66

¿Has probado el consejo que te di antes (todo a allselected)? El problema puede estar aquí. 'filter on this page' filtrará algunas filas, que contienen datos que podrían cumplir con el formato condicional. Puede eliminarlo para ver si se muestra correctamente.

vjaneygmsft_0-1627467998282.png

Es necesario añadir las condiciones en los lugares máximos y mínimos.

Así:

vjaneygmsft_1-1627468877204.png

Estaré de vacaciones por un tiempo, así que no puedo responder a tiempo. Espero que puedas entender lo que quiero decir.

¿He respondido a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, cargue algunas muestras de datos insensibles y la salida esperada.


Saludos

Equipo de apoyo a la comunidad _ Janey

Hay @afbraga66,

@v-janeyg-msft 's consejo para cambiar todo a allselected trabajado en su archivo de prueba.

Incluso agregué un filtro en el panel de filtro y sigo funcionando correctamente.

mussaenda_0-1627473946148.png

No @mussaenda ,

La imagen de abajo tiene la medida con ALLSELECTED, con 2 filtros. Uno en visual y otro en la página. Como se puede ver no está funcionando. Esto es del archivo de prueba.

afbraga66_1-1627478789627.png

Gracias.

Saludos

Andre

Allí, @afbraga66

Debe saber que la medida en powerbi es muy flexible, especialmente cuando desea calcular valores dinámicos en lugar de valores fijos. Una pequeña diferencia en el contexto puede causar resultados diferentes.
Si no puede proporcionar algunos archivos de muestra completos o modificarlos de acuerdo con mi código, es difícil para nosotros realmente ayudarlo.

Si tiene alguna pregunta sobre mi código, por favor haga preguntas.

¿Respondí a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no, por favor siéntase libre de preguntarme.


Saludos

Equipo de apoyo a la comunidad _ Janey

Hola @v-janeyg-msft

Espero que hayas tenido un buen descanso 🙂

Así que configuré un archivo de prueba con la fórmula que proporcionaste, pero aún así no pude obtener siempre el mismo resultado basado en el cambio de filtros. También probé las condiciones en MAXX y MINX, pero obtengo un error de sintaxis.

Archivo a continuación:

https://we.tl/t-Q0v92xcjN1

No he entendido hasta ahora la forma adecuada de tratar los filtros a la hora de crear una fórmula, ya que da resultados diferentes si cambio de filtros. Esperaba siempre el mismo resultado, el valor más alto pintado en rojo, el más bajo en verde, el medio en otra cosa.

Gracias.

Saludos

André

Allí, @afbraga66

Prueba esto:

Color Measure = 
var c=SUMMARIZE(ALLSELECTED(DOWNTIME),DOWNTIME[NOME_TIPO],DOWNTIME[MES_FABRIL],"sum",SUM(DOWNTIME[Duration Minutes]))

var a =MAXX(FILTER(c,[MES_FABRIL]=SELECTEDVALUE(DOWNTIME[MES_FABRIL])),[sum])
var b =MINX(FILTER(c,[MES_FABRIL]=SELECTEDVALUE(DOWNTIME[MES_FABRIL])),[sum])
return SWITCH(TRUE(),[mDuration(min)]=a,"Red",[mDuration(min)]=b,"Green","Orange")

vjaneygmsft_0-1630920783911.png

¿Respondí a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no, por favor siéntase libre de preguntarme.


Saludos

Equipo de apoyo a la comunidad _ Janey

Hola @v-janeyg-msft ,

Esto funciona de hecho, muchas gracias.

Tengo una duda adicional ¿cómo lidiamos cuando tenemos más de un campo de fila en una tabla dinámica?

Intenté agregar un nuevo campo de fila y ya no funciona. Agregué el nuevo campo a la medida, pero luego solo funciona cuando la tabla está completamente expandida. ¿Cómo podemos asegurarnos de que funciona correctamente en todas las diferentes combinaciones de expansión o colapso?

Gracias.

He añadido un archivo a continuación.

https://we.tl/t-buuJ0l7ohZ

Saludos

André

Allí, @afbraga66

Puedes probar:

Color Measure = 
var c =SUMMARIZE(ALLSELECTED(DOWNTIME),DOWNTIME[NOME_TIPO],DOWNTIME[MES_FABRIL],"sum",SUM(DOWNTIME[Duration Minutes])) 
var a =MAXX(FILTER(c,[MES_FABRIL]=SELECTEDVALUE(DOWNTIME[MES_FABRIL])),[sum])
var b =MINX(FILTER(c,[MES_FABRIL]=SELECTEDVALUE(DOWNTIME[MES_FABRIL])),[sum]) 
return IF(ISINSCOPE(DOWNTIME[NOME_TIPO])&&NOT(ISINSCOPE(DOWNTIME[COD_OP])),SWITCH(TRUE(),[mDuration(min)]=a,"Red",[mDuration(min)]=b,"Green","Orange"))

Utilizo summraize funtion para generar una tabla virtual con los mismos valores que su matriz visual y luego usarla para calcular.

Si utiliza expandir o contraer, puede utilizar la función isinscope o la función isfilter para calcular los resultados de los niveles principal y jerárquico por separado.

No hay una fórmula única. Cuando se utiliza la visualización matricial y se tienen varios campos de fila, el contexto se vuelve más complicado y el código debe modificarse a medida que cambia la lógica.

Función SUMMARIZE (DAX) - DAX | Documentos de Microsoft

Función ISINSCOPE (DAX) - DAX | Documentos de Microsoft

¿Respondí a su pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.


Saludos

Equipo de apoyo a la comunidad _ Janey

Hay @v-janeyg-msft ,

Entiendo, que se lo den un buen rato en sus vacaciones.

Sólo en una nota al margen, probé el allselected pero era el mismo. Además, el MAXX está dando sintaxis erro porque sólo toma 2 parámetros, y en su ejemplo está agregando un tercero.

Gracias.

Saludos

Andre

Syndicate_Admin
Administrator
Administrator

@afbraga66 , Tienes que crear una medida de color

color =

var _max = maxx(allselected(Table), Table[Colum] =max(Table[Column]),[Measure])

var _min = maxx(allselected(Table), Table[Colum] =max(Table[Column]),[Measure])

devolución

Cambiar ( True() ,

[Meausre] = _min ="Verde",

[Meausre] = _max ="Rojo",

"Amarillo"

)

Usie esta medida en formato condicional utilizando la opción de valor de campo

consulte si es necesario

¿Cómo hacer el formato condicional por medida y aplicarlo en el pastel?: https://youtu.be/RqBb5eBf_I4

eh

Gracias por su ayuda.

He intentado adaptar su código, pero estoy teniendo problemas (error a continuación).

MES_FABRIL es la columna de mes en la matriz que tiene los valores 5,6,7,etc.

Duration(min) es simplemente una suma de una columna.

También tienes maxx cuándo var es _min, es a propósito?

color = 
var _max = maxx(allselected(DOWNTIME), DOWNTIME[MES_FABRIL]=max(DOWNTIME[MES_FABRIL]),[mDuration(min)])
var _min = maxx(allselected(DOWNTIME), DOWNTIME[MES_FABRIL] =max(DOWNTIME[MES_FABRIL]),[mDuration(min)])
return
Switch ( True() ,
[mDuration(min)] = _min ="Green",
[mDuration(min)] = _max ="Red",
"Yellow"
)

afbraga66_0-1626432452205.png

Al tratar de hacer que funcione, también voy el mensaje al aplicarlo diciendo.

afbraga66_2-1626433182798.png

Gracias

Saludos

Andre

Helpful resources

Announcements
July 2024 Power BI Update

Power BI Monthly Update - July 2024

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

PBI_Carousel_NL_June

Fabric Community Update - June 2024

Get the latest Fabric updates from Build 2024, key Skills Challenge voucher deadlines, top blogs, forum posts, and product ideas.

Top Solution Authors