Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Ahí dentro,
Tengo una mesa con este año ventas y ventas del año pasado en la que quiero filtrar tanto en Mes como en Semana. Sin embargo, las semanas se basan en los números de semana ISO y quiero comparar los números de la semana ISO con el año anterior.
Para su información a continuación una representación de los números de la semana ISO en la tabla de fechas.
Fecha | Semana normal | Número de semana ISO | Mes |
1-1-2021 | 1 | 53 | 1 |
2-1-2021 | 1 | 53 | 1 |
3-1-2020 | 1 | 53 | 1 |
4-1-2020 | 1 | 1 | 1 |
5-1-2020 | 1 | 1 | 1 |
En 2020 parece:
Fecha | número de semana normal | Número de semana Iso | Mes |
1-1-2020 | 1 | 1 | 1 |
2-1-2020 | 1 | 1 | 1 |
3-1-2020 | 1 | 1 | 1 |
4-1-2020 | 1 | 1 | 1 |
Así que si selecciono la semana ISO número 1 quiero comparar las fechas que son en la semana 1 del año pasado.
Afortunadamente encontré la fórmula a continuación que hace que perfectamente
Solved! Go to Solution.
No @BobKoenen,
Modifique la medida como se indica a continuación:
Sales Last year =
VAR CurrentWeek =
SELECTEDVALUE ( 'Calendar'[ISO Week Number] )
VAR CurrentYear =
SELECTEDVALUE ( 'Calendar'[Year] )
VAR currentMonth =
SELECTEDVALUE ( 'Calendar'[MonthNum] )
RETURN
IF (
NOT ( ISFILTERED ( 'Calendar'[Year] ) ),
"You didnt select a year",
IF (
ISFILTERED ( 'Calendar'[Year] ),
IF (
ISFILTERED ( 'Calendar'[ISO Week Number] )
&& NOT ( ISFILTERED ( 'Calendar'[MonthNum] ) ),
CALCULATE (
[Sales],
FILTER (
ALL ( 'Calendar' ),
'Calendar'[ISO Week Number] = CurrentWeek
&& 'Calendar'[Year] = CurrentYear - 1
)
),
IF (
ISFILTERED ( 'Calendar'[ISO Week Number] )
&& ISFILTERED ( 'Calendar'[MonthNum] ),
CALCULATE (
[Sales],
FILTER (
ALL ( 'Calendar' ),
'Calendar'[ISO Week Number] = CurrentWeek
&& 'Calendar'[Year] = CurrentYear - 1
&& 'Calendar'[MonthNum] = currentMonth
)
),
IF (
NOT ( ISFILTERED ( 'Calendar'[ISO Week Number] ) )
&& ISFILTERED ( 'Calendar'[MonthNum] ),
CALCULATE (
[Sales],
FILTER (
ALL ( 'Calendar' ),
'Calendar'[MonthNum] = currentMonth
&& 'Calendar'[Year] = CurrentYear - 1
)
),
IF (
NOT ( ISFILTERED ( 'Calendar'[ISO Week Number] ) )
&& NOT ( ISFILTERED ( 'Calendar'[MonthNum] ) ),
CALCULATE (
[Sales],
FILTER ( ALL ( 'Calendar' ), 'Calendar'[Year] = CurrentYear - 1 )
),
BLANK ()
)
)
)
)
)
)
Y verás:
Para el archivo .pbix relacionado, pls ver adjunto.
Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
No @BobKoenen,
Basado en su descripción, no puedo reproducir competencia su senario, ¿podría pls proporcionar algunos datos de muestra con la salida esperada para una prueba?
Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
Hola Kelly. Consulte el archivo adjunto. Espero que puedas abrirlo.
El problema es que cuando selecciono o mes o sólo un año la medida actual no da ningún valor. Quiero que esta medida también funcione al seleccionar un mes y un año y solo un año.
No @BobKoenen,
Después de comprobar, si ha seleccionado un año, entonces no verá un error, por lo que modificar su medida de la siguiente manera:
Sales Last year =
VAR CurrentWeek = SELECTEDVALUE( 'Calendar'[ISO Week Number] )
VAR CurrentYear = SELECTEDVALUE( 'Calendar'[Year] )
RETURN
IF(ISFILTERED('Calendar'[Year]),
CALCULATE( [Sales],
FILTER( ALL( 'Calendar' ),
'Calendar'[ISO Week Number] = CurrentWeek && 'Calendar'[Year] = CurrentYear - 1)),
CALCULATE( [Sales],
FILTER( ALL( 'Calendar' ),
'Calendar'[ISO Week Number] = CurrentWeek && 'Calendar'[Year] =YEAR(TODAY()) - 1)))+0
Y verás:
Para el archivo .pbix relacionado, pls ver adjunto.
Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
@v-kelly-msft Lo siento que no soy lo suficientemente claro, pero esta medida todavía no me da un resultado cuando sólo seleccionar un mes.
También quiero ventas del año anterior cuando la selección solo un Mes y un Año:
No @BobKoenen,
Modifique la medida como se indica a continuación:
Sales Last year =
VAR CurrentWeek =
SELECTEDVALUE ( 'Calendar'[ISO Week Number] )
VAR CurrentYear =
SELECTEDVALUE ( 'Calendar'[Year] )
VAR currentMonth =
SELECTEDVALUE ( 'Calendar'[MonthNum] )
RETURN
IF (
NOT ( ISFILTERED ( 'Calendar'[Year] ) ),
"You didnt select a year",
IF (
ISFILTERED ( 'Calendar'[Year] ),
IF (
ISFILTERED ( 'Calendar'[ISO Week Number] )
&& NOT ( ISFILTERED ( 'Calendar'[MonthNum] ) ),
CALCULATE (
[Sales],
FILTER (
ALL ( 'Calendar' ),
'Calendar'[ISO Week Number] = CurrentWeek
&& 'Calendar'[Year] = CurrentYear - 1
)
),
IF (
ISFILTERED ( 'Calendar'[ISO Week Number] )
&& ISFILTERED ( 'Calendar'[MonthNum] ),
CALCULATE (
[Sales],
FILTER (
ALL ( 'Calendar' ),
'Calendar'[ISO Week Number] = CurrentWeek
&& 'Calendar'[Year] = CurrentYear - 1
&& 'Calendar'[MonthNum] = currentMonth
)
),
IF (
NOT ( ISFILTERED ( 'Calendar'[ISO Week Number] ) )
&& ISFILTERED ( 'Calendar'[MonthNum] ),
CALCULATE (
[Sales],
FILTER (
ALL ( 'Calendar' ),
'Calendar'[MonthNum] = currentMonth
&& 'Calendar'[Year] = CurrentYear - 1
)
),
IF (
NOT ( ISFILTERED ( 'Calendar'[ISO Week Number] ) )
&& NOT ( ISFILTERED ( 'Calendar'[MonthNum] ) ),
CALCULATE (
[Sales],
FILTER ( ALL ( 'Calendar' ), 'Calendar'[Year] = CurrentYear - 1 )
),
BLANK ()
)
)
)
)
)
)
Y verás:
Para el archivo .pbix relacionado, pls ver adjunto.
Saludos
Kelly
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución!
@BobKoenen , Compruebe si esto puede funcionar
Ventas El año pasado ?
VAR CurrentWeek á maxx(allselected('Calendar'[), 'Calendar'[ISO Week Number] )
VAR CurrentYear á maxx(allselected('Calendar'[), 'Calendar'[Year] )
devolución
CALCULATE( [Ventas],
FILTRO( ALL( 'Calendario' ),
'Calendar'[Número de semana ISO] á CurrentWeek && 'Calendar'[Year] - CurrentYear - 1))
Desgraciadamente no. Seleccionar un mes da resultados extraños. Semanas todavía funciona bien. ¿Tienes otra idea?