eslava84
Hola,
Tengo un conjunto de datos con 2 columnas: Fecha e Ingresos. La columna Fecha contiene fechas desde 2020-01-06 hasta 2021-12-31. La segunda columna contiene datos de Ingresos.
Tengo otro conjunto de datos en el que tengo una tabla de calendario fiscal para el mismo rango de datos que el primer conjunto de datos.
Lo que debo hacer es fusionar estos dos conjuntos de datos en una nueva tabla usando la fecha como referencia cruzada, y luego transformar esa nueva tabla para que se vea así:
semana fiscal | Ingresos 2020 | Ingresos 2021 |
1 | 747 | 732 |
2 | 720 | 544 |
3 | 739 | 925 |
4 | 667 | 652 |
… | … | … |
Básicamente, necesito separar los ingresos de 2020 y 2021 por semana fiscal.
Dado que hay varios registros para cada fecha, supongo que tendré que hacer la suma.
¿Cuál sería la forma más fácil de hacer esto?
Si necesita datos de muestra, los estoy subiendo a la carpeta compartida a continuación:
https://1drv.ms/u/s!AhhZq1add5YwjYIvuASi76lCL3R1eA?e=sZQshq
jdbuchanan71
En respuesta a eslava84
Bien, puede calcular el promedio móvil anual de 4 semanas con sus datos tal como está:
Esta es la medida para 2020:
2020 4w ra =
VAR _Weeks = 4
VAR _FiscalWeek = SELECTEDVALUE ( FiscalCalendar[FiscalWeek] )
RETURN
IF (
NOT ISBLANK ( _FiscalWeek ),
DIVIDE (
CALCULATE (
[Revenue Amount],
CALCULATETABLE (
DATESINPERIOD (
FiscalCalendar[Date],
MAX ( FiscalCalendar[Date] ),
- ( _Weeks * 7 ),
DAY
),
FiscalCalendar[FiscalYear] = 2020
),
VALUES ( FiscalCalendar[FiscalYear] )
),
_Weeks
)
)
Pero, si está decidido a tener una nueva tabla, puede crearla usando este código.
New Table =
ADDCOLUMNS(
SUMMARIZE(FiscalCalendar,FiscalCalendar[FiscalWeek]),
"2020",CALCULATE(SUM(RevenueByDate[Revenue]),FiscalCalendar[FiscalYear] = 2020),
"2021",CALCULATE(SUM(RevenueByDate[Revenue]),FiscalCalendar[FiscalYear] = 2021)
)
He actualizado el archivo adjunto que muestra ambas soluciones.
jdbuchanan71
@slavisha84
Gracias por el .pbix de muestra, hace que sea mucho más fácil ayudar. Todo lo que necesita es unir la tabla de calendario a la tabla de ingresos por el campo de fecha.
Luego escriba una medida para sumar los ingresos.
Revenue Amount = SUM ( RevenueByDate[Revenue] )
Y agregue los valores de su tabla de calendario y la medida a un objeto visual.
He adjuntado mi versión actualizada de su muestra para que pueda verla.
eslava84
En respuesta a jdbuchanan71
@jdbuchanan71
Gracias por tu pronta respuesta. Entonces, lo que necesito es una tabla nueva real porque haré alguna otra operación en ella. La tabla en sí debe parecerse a la imagen que produjo. Solo lo necesito en forma de tabla.
jdbuchanan71
En respuesta a eslava84
@slavisha84
No creo que necesites una tabla nueva. Desea realizar su operación utilizando la tabla de fechas y su tabla de ingresos tal como están. De esa manera, puede usar funciones de inteligencia de tiempo y dividir los datos por cualquier otra fecha categórica que tenga.
Forzar sus datos en una nueva tabla que se parece a la imagen la haría menos útil. ¿Qué sucede si desea resumirlo por mes o trimestre en lugar de por semana? Con el modelo tal cual es fácil:
Aquí hay un buen curso gratuito sobre modelado de datos para PowerBI que puede resultarle útil. Obtener su modelo de datos desde el principio hace que sea más fácil de mantener, más fácil de extender y más rápido.
https://www.sqlbi.com/p/introduction-to-data-modeling-for-power-bi-video-course/
eslava84
En respuesta a jdbuchanan71
@ jdbuchanan71 La razón por la que lo necesito en la tabla real es que necesito realizar un promedio móvil de 4 semanas en cada una de estas columnas y luego trazarlo en el gráfico de líneas. Entonces debería ser One Chart que me dará 3 líneas. La tercera línea sería Datos de previsión. La razón por la que lo necesito en este formato es que no puedo trazar 3 líneas en ese gráfico a menos que obtenga los datos transformados en una nueva tabla y realice los cálculos que mencioné.
Eche un vistazo a este hilo en la parte inferior para ver qué problema estoy tratando de resolver en última instancia.
Resuelto: Re: Cómo realizar un promedio móvil de 4 semanas para fis… – Microsoft Power BI Community
Realmente necesito una tabla regular si se puede crear en el formato que estaba buscando.
jdbuchanan71
En respuesta a eslava84
Bien, puede calcular el promedio móvil anual de 4 semanas con sus datos tal como está:
Esta es la medida para 2020:
2020 4w ra =
VAR _Weeks = 4
VAR _FiscalWeek = SELECTEDVALUE ( FiscalCalendar[FiscalWeek] )
RETURN
IF (
NOT ISBLANK ( _FiscalWeek ),
DIVIDE (
CALCULATE (
[Revenue Amount],
CALCULATETABLE (
DATESINPERIOD (
FiscalCalendar[Date],
MAX ( FiscalCalendar[Date] ),
- ( _Weeks * 7 ),
DAY
),
FiscalCalendar[FiscalYear] = 2020
),
VALUES ( FiscalCalendar[FiscalYear] )
),
_Weeks
)
)
Pero, si está decidido a tener una nueva tabla, puede crearla usando este código.
New Table =
ADDCOLUMNS(
SUMMARIZE(FiscalCalendar,FiscalCalendar[FiscalWeek]),
"2020",CALCULATE(SUM(RevenueByDate[Revenue]),FiscalCalendar[FiscalYear] = 2020),
"2021",CALCULATE(SUM(RevenueByDate[Revenue]),FiscalCalendar[FiscalYear] = 2021)
)
He actualizado el archivo adjunto que muestra ambas soluciones.
eslava84
En respuesta a jdbuchanan71
@jdbuchanan71
Gracias Esto es exactamente lo que necesitaba. Y lo hiciste muy comprensible. 🙂