jimbob741
Hola,
Acabo de empezar con Power BI y DAX hace muy poco, así que estoy bastante atascado en relación con este problema que tengo.
Me gustaría un gráfico de barras que muestre 3 resultados diferentes según el número de semana del año que he seleccionado. Me gustaría seleccionar la semana (p. ej., ‘semana 35’), luego, a partir de ahí, me gustaría calcular la semana anterior y la semana anterior del año pasado y mostrar los resultados uno al lado del otro.
Los datos son literalmente solo una columna de ‘Número de semana’ con un recuento de ‘Usuarios’ como valor.
Por favor, ¿alguien podría ayudarme con los pasos necesarios para lograr esto?
¡Muchas gracias de antemano!
v-haibl-msft
@jimbob741
Me gustaría darle una muestra de la siguiente manera. El archivo .pbix se ha subido aquí. Supongo que tenemos una tabla como la siguiente.
Primero podemos crear una tabla de calendario y crear dos columnas con la siguiente fórmula. Cree una relación entre estas dos tablas con la clave Fecha.
Calendar = CALENDAR ( "1/1/2015", "12/31/2016" )
WeekNum = WEEKNUM ( 'Calendar'[Date] )
Year = YEAR ( 'Calendar'[Date] )
En la tabla original, cree también una columna WeekNum.
WeekNum = RELATED ( 'Calendar'[WeekNum] )
Luego, solo necesitamos crear dos medidas para obtener los datos de ‘La semana pasada’ y ‘Esta semana del año pasado’.
Last Week = VAR CurrentWeekNum = MAX ( 'Calendar'[WeekNum] ) VAR CurrentYear = MAX ( 'Calendar'[Year] ) RETURN ( CALCULATE ( SUM ( Table1[Users] ), FILTER ( ALL ( 'Calendar' ), 'Calendar'[Year] = CurrentYear && 'Calendar'[WeekNum] = CurrentWeekNum - 1 ) ) )
This Week Last Year = VAR CurrentWeekNum = MAX ( 'Calendar'[WeekNum] ) VAR CurrentYear = MAX ( 'Calendar'[Year] ) RETURN ( CALCULATE ( SUM ( Table1[Users] ), FILTER ( ALL ( 'Calendar' ), 'Calendar'[Year] = CurrentYear - 1 && [WeekNum] = CurrentWeekNum ) ) )
Arrastre dos segmentaciones para Year & WeekNum y un gráfico de barras agrupadas al lienzo.
Atentamente,
Herbert
v-haibl-msft
@jimbob741
Me gustaría darle una muestra de la siguiente manera. El archivo .pbix se ha subido aquí. Supongo que tenemos una tabla como la siguiente.
Primero podemos crear una tabla de calendario y crear dos columnas con la siguiente fórmula. Cree una relación entre estas dos tablas con la clave Fecha.
Calendar = CALENDAR ( "1/1/2015", "12/31/2016" )
WeekNum = WEEKNUM ( 'Calendar'[Date] )
Year = YEAR ( 'Calendar'[Date] )
En la tabla original, cree también una columna WeekNum.
WeekNum = RELATED ( 'Calendar'[WeekNum] )
Luego, solo necesitamos crear dos medidas para obtener los datos de ‘La semana pasada’ y ‘Esta semana del año pasado’.
Last Week = VAR CurrentWeekNum = MAX ( 'Calendar'[WeekNum] ) VAR CurrentYear = MAX ( 'Calendar'[Year] ) RETURN ( CALCULATE ( SUM ( Table1[Users] ), FILTER ( ALL ( 'Calendar' ), 'Calendar'[Year] = CurrentYear && 'Calendar'[WeekNum] = CurrentWeekNum - 1 ) ) )
This Week Last Year = VAR CurrentWeekNum = MAX ( 'Calendar'[WeekNum] ) VAR CurrentYear = MAX ( 'Calendar'[Year] ) RETURN ( CALCULATE ( SUM ( Table1[Users] ), FILTER ( ALL ( 'Calendar' ), 'Calendar'[Year] = CurrentYear - 1 && [WeekNum] = CurrentWeekNum ) ) )
Arrastre dos segmentaciones para Year & WeekNum y un gráfico de barras agrupadas al lienzo.
Atentamente,
Herbert
eliotp
En respuesta a v-haibl-msft
@v-haibl-msftSolución increíble.
Estoy tratando de usar el mismo código; Lo tengo funcionando para mi propósito, excepto que parece que no puedo usar mi Datekey o una columna calculada en mi tabla de fechas, tengo que usar el valor WeekNum; de lo contrario, no funciona; ¿pensamientos?
jimbob741
En respuesta a v-haibl-msft
Muchas gracias Herbert, muy apreciado.
Su solución parece ser exactamente lo que busco, ¡lo intentaré y le diré cómo me fue!
v-haibl-msft
En respuesta a jimbob741
@jimbob741
¿Se ha solucionado tu problema?
Atentamente,
Herbert
jimbob741
En respuesta a v-haibl-msft
Perfectamente Herbert, gracias! Disculpas por no confirmar antes.
ShawnPrecio
En respuesta a jimbob741
Estaba tratando de recrear esto y funciona bien, pero en lugar de que los Usuarios sean un número, tengo Representantes de llamadas, que es un campo de texto. ¿Puedo hacer algo como esto con eso? Parece que no puedo resolverlo. Gracias.