Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Período similar con intervalo de año variable

Hola

Estoy buscando una manera de comparar los resultados de ventas del año en curso con los resultados del 19 de marzo al 20 de febrero.

Usamos esto para medir los impactos de COVID, etc. y consideramos del 19 de marzo al 20 de febrero nuestro período pre-COVID donde COVID no había afectado significativamente al negocio.

Así que necesitaría una medida para comparar las ventas de marzo-diciembre de este año con marzo-diciembre 19, y enero-febrero de este año con enero-febrero 20.

Creo que la medida se verá algo así como CALCULATE(SUM('Table1'[Actuals]), filtro para comparar con el mismo período 2019 o 2020)

He echado un vistazo a la función PARALLELPERIOD, pero tuve problemas para usar una variable para el argumento de intervalo.

Por favor, hágamelo saber si esto tiene sentido o si se requiere más información.

Gracias de antemano.

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

@Greg_Deckler

Gracias por su respuesta.

Parece que funcionará para overalll, pero me pregunto si es posible hacer que esto funcione para mostrar algo como lo siguiente:

AñoMesAño en cursoPre COVID
2022Ago $ 1.000.000 $ 2.000.000
2022Sep $ 1.000.000 $ 2.000.000
2022Oct $ 1.000.000 $ 2.000.000
2022Nov $ 1.000.000 $ 2.000.000
2022Dic $ 1.000.000 $ 2.000.000

Idealmente, me gustaría ver los resultados uno al lado del otro como en la tabla anterior.

Agradecemos su ayuda.

@latimert Ah, por mes, eso sería:

Measure = 
  VAR __Start = MIN('Table'[Date])
  VAR __PreCOVIDStart = IF(MONTH('Table'[Date]) > 2, DATE(2019,MONTH(__Start),1), DATE(2020,MONTH(__Start),1) )
  VAR __PreCOVIDEnd = EOMONTH(__PreCOVIDStart,0)
  VAR __SalesPC = SUMX(FILTER(ALL('Table'),'Table'[Date]>= __PreCOVIDStart && [Date]<=__PreCOVIDEnd),[Sales])
RETURN
  __SalesPC

@Greg_Deckler

Recibo el siguiente error al intentar agregar esta medida:
No se puede determinar un solo valor para la columna 'Fecha' en la tabla 'GeneralLedger'. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como min, max, count o sum para obtener un solo resultado.

Mi tabla se llama GeneralLedger y mi columna de fecha se llama Date.

Gracias de nuevo por su ayuda.

@latimert ¡Creo que eres demasiado rápido! Me di cuenta de que tenía un error en la fórmula y edité la publicación para corregirlo. Vuelva a comprobarlo después de actualizar la página. El fragmento de código ofensivo fue la primera función MONTH en la variable PreCOVIDStart.

@Greg_Deckler Puede haber sido un poco demasiado entusiasta jaja.

Esta medida funciona, sin embargo, es extremadamente lenta de cargar en una tabla de 6 filas (julio - diciembre). ¿Se espera que esto sea lento? El conjunto de datos no es enorme y la mayoría de las medidas son instantáneas.

Si tiene algún consejo para hacer esto más rápido, eso sería muy apreciado.

@latimert Bueno, puedes probar esto:

Measure = 
  VAR __Start = MIN('Table'[Date])
  VAR __PreCOVIDStart = IF(MONTH(__Start) > 2, DATE(2019,MONTH(__Start),1), DATE(2020,MONTH(__Start),1) )
  VAR __PreCOVIDEnd = EOMONTH(__PreCOVIDStart,0)
  VAR __SalesPC = CALCULATE(SUM('Table'[Sales]),ALL('Table'),'Table'[Date]>= __PreCOVIDStart && [Date]<=__PreCOVIDEnd)
RETURN
  __SalesPC

El filtrado de rangos apesta y el uso de CALCULATE es impredecible dependiendo de su configuración visual y de si tiene o no un esquema de estrella, así como del ciclo en el que se encuentra la luna (generalmente funciona durante un Giboso Menguante).

@Greg_Deckler

¡Solo le diré al destinatario que espere al próximo giboso menguante entonces!

Bromas aparte, el cálculo fue significativamente más rápido, pero estaré atento a cualquier inconsistencia.

Esto ha sido muy útil. ¡Muchas gracias!

@latimert Tengo muchos problemas con esa función, ¡pero es útil cuando es útil! ¡Festivus!

Syndicate_Admin
Administrator
Administrator

@latimert Pruebe algo como lo siguiente:

Measure = 
  VAR __Year = YEAR(TODAY())
  VAR __PreCOVIDStart = DATE(2019,3,1)
  VAR __PreCOVIDEnd = DATE(2020,2,29)
  VAR __SalesTY = SUMX(FILTER(ALL('Table'),YEAR('Table'[Date]) = __Year),[Sales])
  VAR __SalesPC = SUMX(FILTER(ALL('Table'),'Table'[Date]>= __PreCOVIDStart && [Date]<=__PreCOVIDEnd),[Sales])
RETURN
  DIVIDE(__SalesTY,__SalesPC,0)

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors