Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers!
Enter the sweepstakes now!Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.
Hola a todos,
He estado luchando mucho hoy, tratando de conseguir algo para trabajar.
Lo que estoy tratando de crear es un informe dinámico de migración de segmentos. Por cada semana, cada cliente se pone en uno de los 5 segmentos. (como "leal" y "arriesgado"). Dado que esto se hace para cada semana, puede mostrar desde qué segmento se movió el usuario a qué otro segmento. Así que imaginen que es la semana 45, pero todavía quiero ver la migración del segmento entre la semana 40 y 41, que debería ser posible. Quiero poder, con la ayuda de segmentaciones de datos o un parámetro hipotética, establecer las semanas que voy a comparar entre sí.
El resultado final debe mostrar las siguientes columnas:
- Semana del programa de segmento de origen
- Segmento de origen
- Semana del programa de Segmento de Desitanía
- Segmento de destino
- Número de personas distintas que hacen esta transición.
Los datos que tengo tienen 3 columnas relevantes: una semana, un segmento, un UUID.
Aquí hay algunos datos de prueba:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("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", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Segment = _t, UUID = _t, WeekCode = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"SegmentName", type text}, {"LoyaltyId", type text}, {"ProgramWeekCombination", type text}})
in
#"Changed Type"
El problema con el que me encuentro es que no quiero crear una nueva tabla que tenga una combinación de cada semana con cada dos semanas y luego todas las transiciones posibles. Eso terminaría siendo demasiados datos. Así que esperaba usar medidas para esto, pero no puedo escribir una lo suficientemente buena para hacer lo que quiero.
¡Cualquier ayuda es apreciada!
hola @Jaap_Olsthoorn
Podrías consultar este blog:
Si todavía tiene el problema, comparta su salida esperada basada en los datos de ejemplo anteriores.
saludos
Lin
Hola Lin,
Sí, puedo entender que esto es confuso, me ha estado confundiendo todo el día!
Este es un ejemplo de lo que quiero:
Por lo tanto, el usuario puede elegir una semana de destino (por ejemplo, la semana pasada) y una semana de origen, digamos la semana anterior, utilizando las segmentaciones de datos. A continuación, la tabla mostrará todas las combinaciones de segmentos que las personas tenían en esas semanas. Por ejemplo, si sólo había 3 personas en mis datos, y esto es lo que sucedió:
"Johnny fue de Leales a Baja Frequentia" y "Lizzy fue de Novatos a En Riesgo", y "Benny también fue de Novatos a En Riesgo"
Los datos resultantes deben mostrar:
Segmento de origen del segmento de destino Número de usuarios
Baja Frequentia Leales 1
En Riesgo Novatos 2
Esa es la idea.
Como se puede ver en el ejemplo he llegado razonablemente lejos con él. El problema es que la segunda columna tiene que ser una medida, y esa medida utiliza actualmente un "MAX(segmento de destino)" que siempre dará A Novatos.
Espero que esto ayude un poco. ¡Perdón por confundirte!
Jaap
hola @Jaap_Olsthoorn
Si es posible, por favor comparta su archivo pbix de muestra para que tengauna una prueba.
saludos
Lin
hola @Jaap_Olsthoorn
En primer lugar, usted debe saber que:
1. La columna/tabla de cálculo no admite cambios dinámicos basados en filtro o segmentación de datos.
2. La medida puede verse afectada por el filtro / cortador, por lo que puede usarlo para obtener un resumen dinámico en funcióndel contexto de fila actual.
https://www.sqlbi.com/articles/calculated-columns-and-measures-in-dax/
Dado que _Segmentname Fuente es una medida, creo que es difícil lograr en power bi.
saludos
Lin
Sí, creo que lo que quería no era posible en PowerBI. Usé otra "solución" que acaba de toma el valor de hace 4 semanas, de hace 8 semanas y de hace 16 semanas en columnas.
¡Gracias por pensar!
Jaap
Llegué tan lejos como para conseguir una fila por cada UUID con cada destino y fuente, simplemente no puedo averiguar cómo agrupar esto por cada combinación de segmentos 😞 (y no, simplemente cambiar el loyaltyID a un recuento no funciona, la medida que utilizo para crear los datos de origen de segmento no juega bien con eso.
Aquí está la medida de referencia:
Las medidas que desea segmentar tienen que evaluar solo las filas con un precio dentro de los segmentos seleccionados. Por lo tanto, suponiendo que SalesAmount es la medida original, se define la medida SalesRange correspondiente que controla la segmentación de la siguiente manera:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | SalesRange :- CALCULAR ( [SalesAmount], FILTRO ( VALORES ( Ventas[Precio] ), COUNTROWS ( FILTRO ( Gamas Ventas[Precio] > Rangos[Precio mínimo] && Ventas[Precio] < Rangos[Precio máximo] ) ) > 0 ) ) |
Oye Lewis, no puedo decir que siga. Estás hablando de cantidades de ventas, pero sólo tengo nombres de segmentos. La segmentación ya se ha realizado. Mi pregunta es sobre lo que viene después.
Check out the April 2025 Power BI update to learn about new features.
Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.