¿Cómo agregar los ingresos por semana fiscal?

Un usuario Pregunto ✅

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.

eslava84_0-1617928314847.png

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.

eslava84_1-1617928502743.png

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á:

jdbuchanan71_0-1617937919884.png

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)
)

jdbuchanan71_1-1617938029181.png

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.

jdbuchanan71_0-1617933112892.png

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.

jdbuchanan71_1-1617933192310.png

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:

jdbuchanan71_0-1617935807284.png

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á:

jdbuchanan71_0-1617937919884.png

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)
)

jdbuchanan71_1-1617938029181.png

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. 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *