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.
¡Hola amigos!
Espero que puedas arrojar una luz sobre cómo lograr esto..
Estoy trabajando en un informe para comparar unidades vendidas, comparando CY (año actual) con LY (año pasado).
Estoy usando la definición de calendario de venta al por menor, así que tengo 2 segmentaciones,
Segmentadora1: para seleccionar Mes de venta al por menor (que incluye varias semanas de venta al por menor)
Segmentadora2: Para seleccionar Retail Week
Dado que estoy usando un calendario comercial, no puedo usar la función SAMEPERIODLASTYEAR como el mes 2 de 2020 no tiene las mismas fechas exactas de 2019
año | Semana | Mes | Fecha |
2020 | 5 | 2 | 27 de enero de 2020 |
2020 | 5 | 2 | 28 de enero de 2020 |
2020 | 5 | 2 | 29 de enero de 2020 |
2020 | 5 | 2 | 30 de enero de 2020 |
2020 | 5 | 2 | 31 de enero de 2020 |
2020 | 5 | 2 | 1 de febrero de 2020 |
2020 | 5 | 2 | 2 de febrero de 2020 |
2019 | 5 | 2 | 28 de enero de 2019 |
2019 | 5 | 2 | 29 de enero de 2019 |
2019 | 5 | 2 | 30 de enero de 2019 |
2019 | 5 | 2 | 31 de enero de 2019 |
2019 | 5 | 2 | 1 de febrero de 2019 |
2019 | 5 | 2 | 2 de febrero de 2019 |
2019 | 5 | 2 | 3 de febrero de 2019 |
En función de los valores seleccionados en cada segmentación de datos, la medida evalúa los valores de CY y LY.
Para CY es bastante sencillo, pero para el año pasado no puedo hacer que funcione si selecciono más de 1 mes o semana en la segmentación.
Aquí está mi fórmula:
para CY -->
Unidades CY - SUM(Sales_Retail[units])+SUM(SELLOUT_SALES[units])
para LY:
Var CurrentYear (Año actual) (valor Retail_Calendar[año])
Var CurrentMonth (HASONEVALUE(Retail_Calendar[Month]),VALUES(Retail_Calendar[Month]),BLANK())
devolución
IF(
ISBLANK(Mes actual),
CALCULATE( [Units CY],FILTER(ALL(Retail_Calendar),Retail_Calendar[año]-CurrentYear-1))
, CALCULATE([Units CY],FILTER(ALL(Retail_Calendar),Retail_Calendar[Mes] - Mes actual && Retail_Calendar[año]-CurrentYear-1))
)
Durante 1 mes seleccionado, funciona bien
Cuando se selecciona más de uno, se supone que no se ha realizado ninguna selección y muestra un total de 12 meses.
Intenté usar varios enfoques, pero ninguno de ellos funcionó...
Apreciaría cualquier idea sobre cómo lograr esto
¡Gracias!
Solved! Go to Solution.
Hola @monike ,
Asegúrese de que la tabla carlendar no tiene una relación activa con la tabla de ventas.
Por favor, compruebe las medidas.
C_Y = CALCULATE(SUM(Sales_Retail[units]),FILTER(Sales_Retail,WEEKNUM(Sales_Retail[Date]) in VALUES('calendar'[Week])&&MONTH(Sales_Retail[Date]) in VALUES('calendar'[Month])&&YEAR(Sales_Retail[Date]) = SELECTEDVALUE('calendar'[Year])))
L_Y = CALCULATE(SUM(Sales_Retail[units]),FILTER(Sales_Retail,WEEKNUM(Sales_Retail[Date]) in VALUES('calendar'[Week])&&MONTH(Sales_Retail[Date]) in VALUES('calendar'[Month])&&YEAR(Sales_Retail[Date]) = SELECTEDVALUE('calendar'[Year])-1))
Saludos
Jay
Equipo de Apoyo Comunitario _ Jay Wang
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @monike ,
Asegúrese de que la tabla carlendar no tiene una relación activa con la tabla de ventas.
Por favor, compruebe las medidas.
C_Y = CALCULATE(SUM(Sales_Retail[units]),FILTER(Sales_Retail,WEEKNUM(Sales_Retail[Date]) in VALUES('calendar'[Week])&&MONTH(Sales_Retail[Date]) in VALUES('calendar'[Month])&&YEAR(Sales_Retail[Date]) = SELECTEDVALUE('calendar'[Year])))
L_Y = CALCULATE(SUM(Sales_Retail[units]),FILTER(Sales_Retail,WEEKNUM(Sales_Retail[Date]) in VALUES('calendar'[Week])&&MONTH(Sales_Retail[Date]) in VALUES('calendar'[Month])&&YEAR(Sales_Retail[Date]) = SELECTEDVALUE('calendar'[Year])-1))
Saludos
Jay
Equipo de Apoyo Comunitario _ Jay Wang
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @monike ,
Cuando se refiere a calcular el año anterior desea tener los valores basados en la fecha del 27 al 2 de enero? o lo quieres por semana del año?
Si esta es la última opción (suponiendo que sea debido a las dos segmentaciones de datos intentan hacer una columna adicional en el calendario con año/semana:
YEAR/WEEK= FORMAT(Retail_Calendar[Date];"yyyy")&FORMAT(WEEKNUM(Retail_Calendar[Date]);"00")
Ahora intente hacer el siguiente código:
for LY:
Var CurrentYear_week =SELECTEDVALUE(Retail_Calendar[Year/week])
Return
IF(
ISBLANK(CurrentYear/week),
CALCULATE( [Units CY],FILTER(ALL(Retail_Calendar),Retail_Calendar[year]=CurrentYear-1))
, CALCULATE([Units CY],FILTER(ALL(Retail_Calendar),Retail_Calendar[Year/week] = CurrentYear_week - 100)
)
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHola @MFelix
Gracias por su respuesta.
No estoy seguro de haberme explicado correctamente, el problema que tengo es que la fórmula no evalúa cuando selecciono más de 1 semana en la segmentación.
Digamos que implementé su columna propuesta en la tabla Retail_Calendar y en la segmentación de datos selecciono las semanas 4 y 5
Valores en Var
¿Cómo se debe escribir la medida para calcular la suma de unidades para el año/semana 201904 y 201905?
¡Gracias!
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 |