Promedio del mismo periodo del año pasado, pero durante 3 años y trimestre

Un usuario Pregunto ✅

DCELL

Hola

Aquí hay un objeto visual para explicar el objetivo, es bastante sencillo:

DCELL_0-1602035435893.png

El valor de un trimestre determinado debe ser el promedio de los mismos 3 trimestres anteriores.

En otras palabras, 2021 Q2 promedio – promedio(2020 Q2 + 2019 Q2 + 2018 Q2)

Gracias a todos

DCELL

Gracias a todos por echarle un vistazo.

Resulta que tener diferentes trimestres fiscales no es importante, ya que los rangos de los trimestres siguen siendo los mismos.
Aquí está la solución que encontré:

Average shipped prev 3 = 
VAR prev1 =
    CALCULATE (
        SUM ( 'Sales'[Value] ),
        PARALLELPERIOD ( 'Calendar'[Date], -4, QUARTER )
    )
VAR prev2 =
    CALCULATE (
        SUM ( 'Sales'[Value] ),
        PARALLELPERIOD ( 'Calendar'[Date], -8, QUARTER )
    )
VAR prev3 =
    CALCULATE (
        SUM ( 'Sales'[Value] ),
        PARALLELPERIOD ( 'Calendar'[Date], -12, QUARTER )
    )

RETURN
    IF (
        ISBLANK ( prev1 ) 
        || ISBLANK ( prev2 )
        || ISBLANK ( prev3 ),
        BLANK(),
        DIVIDE ( prev1 + prev2 + prev3, 3 )
    )

Adaptado de una solución aquí:
https://community.powerbi.com/t5/Desktop/Same-Period-Last-N-Years/mp/888447

DCELL

Gracias a todos por echarle un vistazo.

Resulta que tener diferentes trimestres fiscales no es importante, ya que los rangos de los trimestres siguen siendo los mismos.
Aquí está la solución que encontré:

Average shipped prev 3 = 
VAR prev1 =
    CALCULATE (
        SUM ( 'Sales'[Value] ),
        PARALLELPERIOD ( 'Calendar'[Date], -4, QUARTER )
    )
VAR prev2 =
    CALCULATE (
        SUM ( 'Sales'[Value] ),
        PARALLELPERIOD ( 'Calendar'[Date], -8, QUARTER )
    )
VAR prev3 =
    CALCULATE (
        SUM ( 'Sales'[Value] ),
        PARALLELPERIOD ( 'Calendar'[Date], -12, QUARTER )
    )

RETURN
    IF (
        ISBLANK ( prev1 ) 
        || ISBLANK ( prev2 )
        || ISBLANK ( prev3 ),
        BLANK(),
        DIVIDE ( prev1 + prev2 + prev3, 3 )
    )

Adaptado de una solución aquí:
https://community.powerbi.com/t5/Desktop/Same-Period-Last-N-Years/mp/888447

amichandak

@DCELL, con una tabla de fechas e inteligencia de tiempo tienen fórmulas como

Ventas de QTD: CALCULATE(SUM(Sales[Sales Amount]),DATESQTD((‘Fecha'[Date])))
¿Últimas ventas QTD? CALCULAR(SUMA(Ventas[Sales Amount]),DATESQTD(dateadd(‘Fecha'[Date],-1,TRIMESTRE)))

o usar este en 2o y 3 rd ultimo qtr

Últimas ventas QTD completas – CALCULATE(SUM(Sales[Sales Amount]),DATESQTD( ENDOFQUARTER(dateadd(‘Fecha'[Date],-1,TRIMESTRE))))

2a últimas ventas de QTD : CALCULATE(SUM(Sales[Sales Amount]),DATESQTD(dateadd(‘Fecha'[Date],-2,TRIMESTRE)))

¿Tercer último trimestre de ventas? CALCULAR(SUMA(Ventas[Sales Amount]),DATESQTD(dateadd(‘Fecha'[Date],-3,TRIMESTRE)))

Promedio de los ultimos 3o ([Las últimas ventas de QTD]+[2a últimas ventas de QTD] +[3a últimas ventas de QTD])/3

DCELL

En respuesta a amichandak

@amitchandak

Creo que esta solución normalmente funcionaría, pero el único obstáculo es que el período del ejercicio es diferente de un año natural normal. El trimestre 1 del año fiscal 2020 comienza el 1 de julio de 2019. El trimestre 4 del año fiscal 2020 finaliza el 30 de junio de 2020.
Agregaré el código M para mi calendario completo de cálculo a continuación, que contiene varias columnas que pueden hacer que el trimestre fiscal sea más fácil:

Nota: Debe agregar el parámetro «StartOfFiscalYear»:
Nombre: «StartOfFiscalYear»
Descripcion: lo que sea
Requerido: si
Tipo – número decimal
Valores sugeridos: cualquier valor
valor real 7

Nota2: Una columna que tiene una r minúscula significa que es relativa. Por ejemplo, en octubre, el valor [rMont] para septiembre es -1.

El codigo M del calendario:

Dejar
obtener la fecha actual, semana, mes, trimestre y año
«Esta Fecha» – Date.From( DateTime.LocalNow() ),
«Esta semana» – Date.WeekOfYear( ?»Esta fecha» ),
«Este mes» – Date.Month(«Esta fecha» ),
«Este trimestre» – si List.Contains( .7,8,9o, «Este mes») y luego Number.From(1)
else if List.Contains( .10,11,2o, «Este mes») y luego Number.From(2)
else if List.Contains( .1,2,3o, «Este mes») y luego Number.From(3)
else if List.Contains( .4,5,6o, «Este mes») y luego Number.From(4)
otro «algo malo»,
«Este año» – Int64.From(Date.Year( ?»This Date» )),
«Este año fiscal» si «Este mes» <-6 y luego "Este año" más o "Este año" +1,
obtener el inicio del calendario y las fechas
«Fecha de inicio» – #date(«Este año» -2, 1, 1 ),
«Fecha de finalización» – #date (Este año» + 2, 12, 31 ),

crear tablas de fechas
«Listar todas las fechas» – dejar
«Duración de inicio a fin» – Duración.Días( «Fecha de finalización» – «Fecha de inicio» + 1,
«Fechas de lista» – List.Dates( «Fecha de inicio», «Duración de inicio a fin», #duration( 1, 0, 0, 0 ) ) ),
«Fechas de la tabla» – #table ( tabla de tipos [ «Fecha» – fecha ], List.Transform( «Fechas de lista», cada uno de ellos á _ ) )
es
«Fecha de la Tabla»,
añadir todas las columnas
«Añadido rDate» – Table.AddColumn( ?»Listar todas las Fechas», «rDate», cada Number.From( [Fecha] – «Esta Fecha» ), Int64.Tipo ), Int64.Tipo ), Int64.Tipo ),
«Año Añadido» – Table.AddColumn(-«Añadido rDate», «Year», each Date.Year( [Date] ) ),
«Semana agregada» – Table.AddColumn(«Año agregado», «Semana», cada «Semana» & Text.PadStart( Number.ToText( Date.WeekOfYear( [Fecha] ) ), 2, «0» ), escriba texto ),
«Añadido rWeek» – Table.AddColumn( ?»Added Week», «rWeek», cada Fecha.WeekOfYear( [Date] ) – «Esta semana», Int64.Type ),
«Número de mes agregado» – Table.AddColumn( ?»Semana r agregada», «Número de mes», cada Fecha.Mes( [Date] ), Int64.Tipo ),
«Mes agregado» á Table.AddColumn( ?»NumMes agregado», «Mes», cada Texto.Inicio( Fecha.NombreMes( [Date] ), 3 ), texto de escribano ),
«Añadido rMonth» – Table.AddColumn( «Added Month», «rMonth», each Date.Month( [Date] ) – «Este mes», Int64.Type ),
«Añadido Trimestre» – Table.AddColumn( ?»Añadido rMonth», «Quarter», cada «Q» & Number.ToText( Date.QuarterOfYear([Date] ) ), texto de escribano ),
«Añadido rQuarter» – Table.AddColumn(«Added Quarter», «rQuarter», each Date.QuarterOfYear( [Date]) – «Este trimestre», Int64.Type ),
«Añadido mes fiscal» – Table.AddColumn(-«Added rQuarter», «Fiscal Month», cada uno si [MonthNum] <- 6 y luego [MonthNum]+6 más [MonthNum]-6, Int64.Tipo),
«Añadido Trimestre Fiscal» – Table.AddColumn( «Agregado Mes Fiscal», «Trimestre Fiscal», cada Text.From( Number.RoundUp([Montha Fiscal] / 3, 0) ), Int64.Tipo ),
«Añadido Año Fiscal» – Table.AddColumn(-«Agregado Trimestre Fiscal», «Año Fiscal», cada uno si [MonthNum] > ? InicioDeAñoFiscal
entonces Int64.From([Year])+1
más [Año], Int64.Tipo),
«Tipo modificado1» á Table.TransformColumnTypes(-«Año fiscal agregado»,»Trimestre fiscal», número de tipo),
«Añadido trimestre rFiscal» – Table.AddColumn(-«Changed Type1», «rFiscal Quarter», cada -1 * («Este Trimestre» – [Fiscal Quarter] + («Este año fiscal» – [Fiscal Year]) *4), Int64.Tipo ), Int64.Tipo ),
«Tipo de cambio» – Table.TransformColumnTypes(‘Añadido «Agregado»Cuarto Fiscal»,’Año’, Int64.Type’),
«Añadido rYear» – Table.AddColumn( ?»Changed Type», «rYear», each Date.Year( [Date] ) – «Este año», Int64.Type ),
«Semana de Año Agregada» – Table.AddColumn(«Added rYear», «Year Week», each Text.From([Year]) & » » & Texto.Desde([Week]), texto de escribano ),
«Añadido rYearWeek» – Table.AddColumn(«Añadido Year Week», «rYearWeek», cada uno ( [rYear] * 53 + [rWeek] ), Int64.Tipo ), Int64.Tipo ),
«Mes del año agregado» á Table.AddColumn( ?»Se agregó rYearWeek», «Mes del año», cada Text.From([Year]) & » » & [Month], escriba texto ),
«Añadido rYearMonth» – Table.AddColumn( «Añadido Year Month», «rYearMonth», cada uno ( [rYear] * 12 ) + [rMonth], Int64.Tipo ),
«Añadido Trimestre del Año» – Table.AddColumn( ?»Added rYearMonth», «Yr Qtr», each Text.From([Fiscal Year]) & » Q» & Texto.Desde([Fiscal Quarter]), texto de escribano ),
«Añadido rYearQuarters» – Table.AddColumn(«Añadido Year Quarter», «rYearQuarter», cada uno ( [rYear] * 4 ) + [rQuarter], Int64.Tipo),
«Añadido rFiscal Quarter rMonth» – Table.AddColumn(‘Añadido rYearQuarters’, «Mes de este Trimestre»,
cada uno si List.Contains( s1,4,7,10o, [MonthNum]) y luego «1st»
de lo contrario, si List.Contains( .2,5,8,11o, [MonthNum]) y luego «2nd»
de lo contrario, si List.Contains( s.3,6,9,12o, [MonthNum]) y luego «3er»
otra cosa «algo malo» )
es
«Añadido rTrimestre Fiscal rMes»

Ashish_Mathur

En respuesta a DCELL

Hola

Comparte el enlace desde donde puedo descargar tu archivo PBI.

DCELL

En respuesta a Ashish_Mathur

@Ashish_Mathur

Utilice esto como ejemplo:
https://drive.google.com/file/d/17nNNUd3yOx2zcQHJ8BgRzWeWe3Qmbmrl/view?usp=sharing

He added @amitchandak medidas como una medida en el archivo.

Ashish_Mathur

En respuesta a DCELL

Mensaje de acceso denegado.

DCELL

En respuesta a Ashish_Mathur

@Ashish_Mathur He activado el recurso compartido de enlaces. debería funcionar ahora

Deja un comentario

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