Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
3 years ago

Problema con AVERAGEIFs

Hola a todos,

Tengo un problema que me llevó unas horas resolver y no 😞 pude
Tengo la siguiente estructura de datos:

PaísAñoMesProductoReceptorVolumenRazón
Estados Unidos20141SojaChina5354185Real
Estados Unidos20151SojaChina5260912Real
Estados Unidos20161SojaChina3261607Real
Estados Unidos20171SojaChina3483983Real
Estados Unidos20181SojaChina2690972Real
Estados Unidos20191SojaChina132999Real
Estados Unidos20201SojaChina2323474Real
Estados Unidos20211SojaChina5122018Real
Estados Unidos20221SojaChina3308130Real
Estados Unidos20231SojaChina6224062Real

observe que hay varios años y también varios meses (en este ejemplo puse solo el mes 1), en powerbi ya usé las condiciones "AVERAGEIFS", AVERAGEX con GROUPBY y CALCULATE con FILTER para hacer el promedio correcto para cada mes agrupando los últimos cinco años, por ejemplo, el promedio del mes 1 de los años 2018 a 2022, Pero nada funciona, hace un promedio que definitivamente los valores son incorrectos.

¿Alguien puede ayudarme, por favor? :'(

3 Replies

  • @fjordy ,

    Puedes probar medidas como

    AVERAGEX(Valores(Fecha[Mes Año]) , calcular(Suma(Tabla[Volumen])))

    Supongo que está utilizando una tabla de fechas con mes y año

    o

    AVERAGEX(Resumir(Tabla,Tabla[Año], Tabla[Mes], "_1" , calcular(Suma(Tabla[Volumen]))), [_1])

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Muchas gracias, como no era un formato de fecha tuve que usar otra fórmula, lo logré de la siguiente manera:

      Promedio 5 años =
      VAR CurrentYear = MAX('Amzr Evolution UF'[Año])-1
      VAR LastYear = CurrentYear - 4
      VAR TotalVolume = SUMX(
      FILTRO(
      CALCULATETABLE(
      «Exp Consolidated»,
      'Consolidated Exp'[Año] >= LastYear && 'Consolidated Exp'[Año] <= CurrentYear && 'Consolidated Exp'[Volumen] <> 0
      ),
      'Consolidated Exp'[Month] = MAX('Consolidated Exp'[Month])
      ),
      'Consolidated Exp' [Volumen]
      )
      VAR QtyYears = 5
      RETURN DIVIDE(TotalVolume,QtyYears)