Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
1 year ago

Acumular suma

Hola a todos

Tengo una base de datos que es una lista de varios costos. Algunas líneas están relacionadas con las partidas del presupuesto y otras líneas son los costes totales debitados.

(hay una columna con BGD si es un ítem relacionado con el presupuesto o ACT si es un costo que se debitó).

Creé una nueva medida para calcular la suma acumulada usando esta fórmula:

**bip** Atual =
VAR _maxdate = MAX('Costo Líneas de Producción'[Mes])
DEVOLUCIÓN
CALCULATE(suma('Líneas de producción de costos'[Val.in rep.cur.]),ALLSELECTED('Líneas de producción de costos'),'Líneas de producción de costos'[Mes]<= _maxdate)

Y creé un visual (gráfico de líneas) para mostrar los costos acumulados a lo largo de los meses. Para evitar mostrar elementos "budeget", filtré el objeto visual para que no mostrara elementos BDG).

Sin embargo, me gustaría agregar una nueva línea que muestre el presupuesto acumulado a lo largo de los meses también. ¿Es eso posible?

4 Replies

  • Hola @jps_HHH ,
    Ya tiene esta medida, pero asegúrese de que filtra solo para ACT:

    AccumulatedActualCosts =
    VAR _maxdate = MAX('Cost Production Lines'[Month])
    RETURN
    CALCULATE(
        SUM('Cost Production Lines'[Val.in rep.cur.]),
        ALLSELECTED('Cost Production Lines'),
        'Cost Production Lines'[Month] <= _maxdate,
        'Cost Production Lines'[Type] = "ACT"
    )

    Ahora cree una medida similar pero filtre para BDG:

    AccumulatedBudgetCosts =
    VAR _maxdate = MAX('Cost Production Lines'[Month])
    RETURN
    CALCULATE(
        SUM('Cost Production Lines'[Val.in rep.cur.]),
        ALLSELECTED('Cost Production Lines'),
        'Cost Production Lines'[Month] <= _maxdate,
        'Cost Production Lines'[Type] = "BDG"
    )

    Agregue Mes al eje X.
    Agregue AccumulatedActualCosts y AccumulatedBudgetCosts al campo Valores del gráfico de líneas.
    Esto creará dos líneas separadas: una para los costos reales y otra para los costos presupuestarios.

    Si el modelo de datos lo permite, puede utilizar una columna Tipo (ACT/BDG) como leyenda. Esto dividirá automáticamente las líneas por tipo, pero solo si no necesita medidas separadas.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Funciona.

      Pero la "línea real" debería detenerse en noviembre y no mantener los mismos valores para los próximos meses. Y también me gustaría incluir un pronóstico para la "línea real". Si se superpondrá a la línea presupuestaria en marzo de 2025 o no.

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Hola @jps_HHH ,
        A continuación, se muestra un ejemplo de cómo calcular un pronóstico asumiendo un crecimiento porcentual:

        ForecastActualCosts =
        VAR _maxActualDate = CALCULATE(
            MAX('Cost Production Lines'[Month]),
            'Cost Production Lines'[Type] = "ACT"
        )
        VAR _futureMonths = SELECTCOLUMNS(
            FILTER(
                ALL('Cost Production Lines'[Month]),
                'Cost Production Lines'[Month] > _maxActualDate
            ),
            "Month", [Month]
        )
        VAR _forecastValue = 1.05 -- Example: 5% monthly growth
        RETURN
        SUMX(
            _futureMonths,
            CALCULATE(
                SUM('Cost Production Lines'[Val.in rep.cur.]) * _forecastValue,
                'Cost Production Lines'[Month] <= _maxActualDate
            )
        )

        Modifique _forecastValue o reemplace la lógica de crecimiento con su método de pronóstico específico.

        Ahora puede combinar líneas reales y de previsión:

        CombinedActualAndForecast =
        VAR _maxdate = MAX('Cost Production Lines'[Month])
        VAR _actualMaxDate = CALCULATE(
            MAX('Cost Production Lines'[Month]),
            'Cost Production Lines'[Type] = "ACT"
        )
        RETURN
        IF(
            _maxdate <= _actualMaxDate,
            CALCULATE(
                SUM('Cost Production Lines'[Val.in rep.cur.]),
                ALLSELECTED('Cost Production Lines'),
                'Cost Production Lines'[Month] <= _maxdate,
                'Cost Production Lines'[Type] = "ACT"
            ),
            ForecastActualCosts
        )

  • Presupuesto acumulado =
    VAR _maxdate = MAX(fecha)
    DEVOLUCIÓN
    CALCULAR(
    SUM('Líneas de producción de costos'[Val.in rep.cur.]),
    ALLSELECTED('Líneas de producción de costes'),
    'Costo de las líneas de producción' [mes] <= _maxdate,
    'Líneas de producción de costos'[tipo] = "BGD"
    )