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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
Syndicate_Admin
Administrator
Administrator

Cambiar el color de la dispersión en función de la selección de la segmentación de datos

Hola

Necesito que los colores de los puntos de mi diagrama de dispersión sean dinámicos en función de la selección de la segmentación de datos.
Mi segmentación de datos es de una tabla de dimensiones "REF_Entity" que se une a mi tabla de datos que contiene mis datos.

Ya he visto la solución en la que pongo una rebanadora de una mesa duplicada que es independiente de mis tablas originales. (enlace: Resuelto: Gráfico de dispersión con Dynamic, Conditional, Advanced ... - Microsoft Power BI Communit...)

Pero aquí, mi caso de uso necesita que siga usando mi rebanadora de mi tabla de dimensiones, vinculada a mi tabla de hechos.


¿Tiene alguna otra solución que se ajuste a mi caso de uso?
¡Gracias!

13 REPLIES 13
Syndicate_Admin
Administrator
Administrator

Puede utilizar el método de tabla independiente y sincronizarlo con la segmentación de datos de la tabla de dimensiones. Puede ver la configuración en este hilo:

https://community.powerbi.com/t5/Desktop/Filtering-a-value-in-a-slicer-and-coloring-it-by-different-...

Hola @PaulDBrown, su configuración es interesante, pero las segmentaciones de datos no parecen estar sincronizadas cuando mi segmentación de datos tiene varios campos. Por ejemplo, si mi segmentación de datos tiene campos como "Continente", luego "País" y luego "Ciudad".

Probé su método simplemente usando 1 campo (Ciudad) y funciona, pero no funciona en mi caso de uso donde tengo que usar estos 3 campos al mismo tiempo en 1 rebanadora.
¿Tienes una idea de por qué no funciona cuando tengo varios campos en mis segmentaciones de datos?

¡Gracias por su ayuda!

Vea si esto funciona (que en realidad es mucho más simple que usar una cortadora oculta).

Esta es la configuración de este ejemplo. Hay una tabla de hechos, una tabla de dimensiones para la fecha y la ubicación, y el duplicado no relacionado de la dimensión de ubicación que utiliza:

unrelated.pngmodel.png

Para configurar el objeto visual de resaltado, necesita estas dos medidas:

A) para calular los valores mostrados, estoy usando:

Sales for unrelated visual =
CALCULATE (
    [Sum Sales],
    ALL ( 'Location Table' ),
    TREATAS ( VALUES ( 'Unrelated locations'[Unrelated City] ), fTable[City] )
)

y utilizar como formato condicional para las columnas de la tabla no relacionada:

Colour CF =
IF (
    ISFILTERED ( 'Location Table' ),
    IF (
        MAX ( 'Unrelated locations'[Unrelated City] )
            IN VALUES ( 'Location Table'[City] ),
        "Red"
    )
)

Configure el objeto visual que desea resaltar los valores utilizando los campos de la tabla no relacionada y el [Ventas para elementos visuales no relacionados]

y obtendrás:

result.gif

Ejemplo de PBIX conectado

¡¡Hola!!
Déjame hacerte una pregunta.
Pude confirmar que el PowerBI adjunto podía mostrar los cambios en el color del gráfico de barras.
Me gustaría usar un diagrama de dispersión para cambiar el color de los datos especificados usando un filtro, similar a los archivos adjuntos, pero actualmente no puedo hacerlo.
¿Podrías darme un consejo?

@PaulDBrown

Sales for unrelated visual =
CALCULATE (
    [Sum Sales],
    ALL ( 'Location Table' ),
    TREATAS ( VALUES ( 'Unrelated locations'[Unrelated City] ), fTable[City] )
)
  • ¿Podría explicarme el truco "TREATAS" que ha utilizado?

  • "Treatas" tomará todos los filtros en 'Ubicaciones no relacionadas' [Ciudad no relacionada] y aplicará lo mismo a fTable [Ciudad] en su medida, pero no hemos aplicado ningún filtro.
    Me pregunto si consideramos en el histograma que cada barra tiene su filtro.
    Por ejemplo, la barra UK puede considerarse que aplicamos un filtro
    'Ubicaciones no relacionadas'[País no relacionado] = Reino Unido.
    lo mismo para México sería
    'Lugares no relacionados'[País no relacionado] = México. etc.

    ¡Gracias por sus respuestas! ¡Me ayuda mucho!

TREATAS es una función que básicamente establece una relación virtual entre dos tablas. En este caso, en efecto con TREATAS, 'Ubicaciones no relacionadas' [Ciudad no relacionada] está filtrando la tabla [ubicaciones]. Así que siguiendo tu ejemplo:

'Ubicaciones no relacionadas'[Ciudad no relacionada] = Reino Unido filtrará la fTable para devolver las filas donde fTable[Ciudad] = Reino Unido. Dado que el país y el continente están presentes en la fTable para cada fila, el filtro se propaga a estas columnas. ¿Entender?

Hola
@PaulDBrown, todavía tengo algunas preguntas:

  1. En lugar de usar TreatAs, ¿no podríamos simplemente crear una relación entre ubicaciones no relacionadas y fTAble como esta?
    Bastienlin__1-1665562816915.png

  2. ¿Y cuál es el punto de usar el primer método con la cortadora oculta, ya que el segundo método parece más simple? Con la cortadora oculta solo funcionaba cuando ponía un solo campo en mi rebanadora. Tan pronto como puse más de un campo, el resaltado dejó de funcionar.

"En lugar de usar TreatAs, ¿no podríamos simplemente crear una relación entre ubicaciones no relacionadas y fTAble como esta?

Ese es un buen punto. Sí, eso funcionaría. Todavía necesita una medida para eliminar los filtros en la tabla de ubicación. Algo así como:

Unrel. Ventas = CALCULAR([Suma de ventas], Todo('Tabla de ubicación'))
(Una razón para no tener una relación es que de alguna manera mantiene el modelo "más simple": si no está relacionado, potencialmente evita usar los campos accidentalmente en imágenes, segmentaciones de datos y filtros (porque no funcionarán directamente), y en expresiones que usan resumir, por ejemplo, intellisense no le permitirá hacer referencia a campos de una tabla no relacionada. Dicho esto, una relación directa es más eficiente que usar TREATAS).
"¿Y cuál es el punto de usar el primer método con la cortadora oculta, ya que el segundo método parece más simple? Con la cortadora oculta solo funcionaba cuando ponía un solo campo en mi rebanadora. Tan pronto como puse más de un campo, el resaltado se detuvo para funcionar".
¡No tiene sentido realmente! He usado la segunda rebanadora en el pasado. Su pregunta sobre múltiples selecciones me hizo pensar, y se me ocurrió el método publicado en este hilo (¡que es una solución mucho mejor!). ¡Así que me ayudaste a explorar una mejor opción! ¡Gracias!

Ya veo, todavía tengo 2 preguntas:

  1. Podemos decir que se está filtrando debido al histograma visual, y los distintos países en él en el eje X , ¿verdad?
  2. ¿Y cuál es el punto de usar el primer método con la cortadora oculta, ya que el segundo método parece más simple? Con la cortadora oculta solo funcionaba cuando ponía un solo campo en mi rebanadora. Tan pronto como puse más de un campo, el resaltado dejó de funcionar.
Syndicate_Admin
Administrator
Administrator

Hola @Bastienlin_ ,

Puede seguir utilizando la dimensión que está vinculada con la tabla Fact. Junto con esto, debe crear una tabla independiente que solo tenga los valores de segmentación de datos.

Hola @Aburar_123, gracias por tu respuesta.

Ya intenté hacer el mismo método con la tabla independiente, pero parece que el color no está cambiando cuando la cortadora es de una tabla vinculada a la tabla de hechos ... ¿Podría compartir un ejemplo?

¡Gracias!

@Bastienlin_ ,

Por ejemplo, tiene una dimensión de producto que está vinculada con pedidos de la tabla de hechos.

Las columnas de la tabla de productos son Categoría de producto, Nombre de producto, ID de producto.

Supongamos que desea tener una segmentación de datos en la categoría de producto. por lo que debe crear una tabla independiente separada como Product_Category = valores (Producto [Categoría de producto]).

Luego, en el gráfico de dispersión, debe usar el Producto [Categoría de producto] donde debe usar la siguiente medida para resaltar la Categoría de producto seleccionada como se muestra a continuación,

Selected_Product_color = if(max(Product[Product Category])=max(Product_Category[Product Category]), "Yellow","Blue")

Por favor, márquelo como una solución si resuelve su problema. Gracias.

Hola @Aburar_123, gracias por tu respuesta.

Este método sólo funciona si la segmentación de datos tiene campos de la tabla duplicada independiente, en mi caso de uso ya tengo una segmentación de datos de mi tabla de dimensiones. Me gustaría que esta segmentación de datos cambiara el color, y no quiero crear una segunda segmentación de datos con los campos de mi tabla independiente duplicada solo para cambiar el color.

¿Ves lo que quiero decir? O tal vez no entendí algo de tu explicación.
¡Gracias por su ayuda!

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors