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.
Buenos días
Necesito mostrar análisis (% de cambio de espectadores totales por episodio) para diferentes paquetes (Oro, Plata, Bronce). El título y la estación del episodio no importan. Mis datos de muestra están por debajo y la salida esperada (% de cambio por episodio) se proporciona a partir de entonces.
* Tenga en cuenta que el número de títulos / en qué paquete se transmiten varía según el episodio.
He podido obtener una solución torpe mediante: duplicar la tabla, filtrar en un paquete, agrupar por número de episodio, agregar un índice, crear una columna calculada que haga referencia al episodio anterior (por índice) y luego calcular el % de cambio por episodio. La desventaja es que tendría que hacer esto para todos los paquetes (mi conjunto de datos real tiene 7 paquetes), y luego crear visualizaciones separadas para cada tabla, por lo que no hay interactividad del usuario. ¿Esperaba que hubiera una solución más elegante?
Datos de muestra:
Título | Paquete | Número de episodio | Estación | Espectadores |
Programa | Oro | 101 | A | 30 |
Resúmenes | Oro | 101 | A | 25 |
Programa | Plata | 101 | A | 50 |
Resúmenes | Plata | 101 | A | 70 |
Resúmenes | Bronce | 101 | A | 40 |
Programa | Oro | 101 | B | 15 |
Resúmenes | Oro | 101 | B | 10 |
Programa | Plata | 101 | B | 40 |
Resúmenes | Plata | 101 | B | 30 |
Resúmenes | Bronce | 101 | B | 20 |
Programa | Oro | 102 | A | 20 |
Resúmenes | Oro | 102 | A | 40 |
Programa | Plata | 102 | A | 60 |
Resúmenes | Plata | 102 | A | 55 |
Resúmenes | Bronce | 102 | A | 65 |
Programa | Oro | 101 | B | 10 |
Resúmenes | Oro | 101 | B | 20 |
Programa | Plata | 101 | B | 25 |
Resúmenes | Bronce | 101 | B | 15 |
Programa | Oro | 103 | A | 20 |
Resúmenes | Oro | 103 | A | 15 |
Programa | Plata | 103 | A | 45 |
Resúmenes | Bronce | 103 | A | 15 |
Salida esperada (% de cambio en espectadores por episodio):
Gracias de antemano por su tiempo y experiencia.
Solved! Go to Solution.
Hay @AnnieTay ,
Primero cree una tabla de episodios y no cree una relación entre;
A continuación, cree una medida como la siguiente:
Measure =
VAR _previous =
CALCULATE (
MAX ( 'Table'[Episode number] ),
FILTER (
ALL ( 'Table' ),
'Table'[Episode number] < MAX ( 'Table'[Episode number] )
)
)
VAR _previoussum =
CALCULATE (
SUM ( 'Table'[Viewers] ),
FILTER (
ALL ( 'Table' ),
'Table'[Episode number] = _previous
&& 'Table'[Package] IN FILTERS ( Slicer[Package] )
)
)
VAR _currentsum =
CALCULATE (
SUM ( 'Table'[Viewers] ),
FILTER (
ALL ( 'Table' ),
'Table'[Episode number] = MAX ( 'Table'[Episode number] )
&& 'Table'[Package] IN FILTERS ( Slicer[Package] )
)
)
RETURN
IF (
_previous = BLANK (),
BLANK (),
DIVIDE ( _currentsum - _previoussum, _previoussum )
)
Y verás:
Para el archivo .pbix relacionado, pls ver adjunto.
Saludos
Kelly
¿Respondí a su pregunta? ¡Marque mi respuesta como una solución!
Gracias @v-kelly-msft
Mientras tanto, a mi colega se le ocurrió otra solución que permite que tanto los visores como el % de cambio se actualicen desde la misma segmentación de datos:
Gracias de nuevo por su aportación.
Hay @AnnieTay ,
Buena solución, pero una cosa debe recordarse, si el número de episodio anterior no es igual al actual menos 1, entonces la solución devolverá el error, puede verificar mi solución que evitará dicho error.
Si crees que mi solución también es buena, espero que también puedas marcar mi respuesta como respondida para que más personas la encuentren.
Gracias de antemano.
Saludos
Kelly
¿Respondí a su pregunta? ¡Marque mi respuesta como una solución!
@AnnieTay , si lo necesita solo en función del episodio. Mejor crear una tabla con un episodio distinto y unirlo con el episodio de esta tabla.
entonces
medida =
var _1 = suma(Tabla[Visor])
var _2 = calculate(_1, filter(all(Episode), Episode [Episode] = maX(Episode[Episode])-1))
devolución
dividir(_2,_1)
Gracias @amitchandak
No estoy seguro de lo que estoy haciendo mal, creé una tabla de episodios (Distinct), vinculada a mis datos y la medida, pero la medida se muestra al 100% independientemente del contexto del filtro.
La medida:
Modelo Mis datos:
Gracias de nuevo por su tiempo.
Hay @AnnieTay ,
Primero cree una tabla de episodios y no cree una relación entre;
A continuación, cree una medida como la siguiente:
Measure =
VAR _previous =
CALCULATE (
MAX ( 'Table'[Episode number] ),
FILTER (
ALL ( 'Table' ),
'Table'[Episode number] < MAX ( 'Table'[Episode number] )
)
)
VAR _previoussum =
CALCULATE (
SUM ( 'Table'[Viewers] ),
FILTER (
ALL ( 'Table' ),
'Table'[Episode number] = _previous
&& 'Table'[Package] IN FILTERS ( Slicer[Package] )
)
)
VAR _currentsum =
CALCULATE (
SUM ( 'Table'[Viewers] ),
FILTER (
ALL ( 'Table' ),
'Table'[Episode number] = MAX ( 'Table'[Episode number] )
&& 'Table'[Package] IN FILTERS ( Slicer[Package] )
)
)
RETURN
IF (
_previous = BLANK (),
BLANK (),
DIVIDE ( _currentsum - _previoussum, _previoussum )
)
Y verás:
Para el archivo .pbix relacionado, pls ver adjunto.
Saludos
Kelly
¿Respondí a su pregunta? ¡Marque mi respuesta como una solución!
Gracias @v-kelly-msft
Mientras tanto, a mi colega se le ocurrió otra solución que permite que tanto los visores como el % de cambio se actualicen desde la misma segmentación de datos:
Gracias de nuevo por su aportación.
Hay @AnnieTay ,
Buena solución, pero una cosa debe recordarse, si el número de episodio anterior no es igual al actual menos 1, entonces la solución devolverá el error, puede verificar mi solución que evitará dicho error.
Si crees que mi solución también es buena, espero que también puedas marcar mi respuesta como respondida para que más personas la encuentren.
Gracias de antemano.
Saludos
Kelly
¿Respondí a su pregunta? ¡Marque mi respuesta como una solución!
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 |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |