Anónimo
En mi tablero, estoy tratando de mostrar cuáles son las ventas proyectadas para este año en función de las ventas reales y el pronóstico restante. Por ejemplo, para cualquier actividad hasta abril de 2017, sumaría el pronóstico de mayo de 2017 a diciembre de 2017 y luego agregaría las ventas reales de enero de 2017 a abril de 2017.
Usando una tabla de fechas estándar, un extracto de ventas y una hoja de pronóstico en Excel, creé las siguientes fórmulas:
1) Obtenga el último día en que ocurrió la venta este año para obtener una fecha actual con la que trabajar:
CurrentDate = CALCULATE (max (autoCalendar[Date]), filtro (ventas, ventas[Total_Sales]> 0))
2) Obtenga el pronóstico de ventas de los 8 meses restantes
Balance de previsión = CALCULAR (suma (Previsión[Forecast]), FILTRO (Previsión, Previsión[Forecast_Date]> [CurrentDate]))
3) Sume los dos para obtener las ventas proyectadas.
Ventas de proyectos = [This Year Sales]+[Forecast Balance]
Estoy seguro de que los 3 pasos se pueden realizar en 1. El problema que tengo es que el saldo del pronóstico está recuperando el pronóstico para enero de 2017.
Los números correctos serían: Balance de pronóstico = 25500 y obtengo 26600
¿Qué hay de malo en la fórmula del paso 2? ¡Se agradece cualquier ayuda!
Pantalla para probar datos
Archivo de previsión
Mattbrice
Esto podría funcionar:
Forecast Balance = VAR CurrentDate = CALCULATE ( LASTNONBLANK ( autoCalendar[Date], [Total Sales] ), ALL ( autoCalendar[Year-Month] ) ) RETURN CALCULATE ( SUM ( Forecast[Forecast] ), FILTER ( VALUES ( Forecast[Date] ), Forecast[Forecast_Date] > CurrentDate ) )
This Year Sales = VAR CurrentDate = CALCULATE ( LASTNONBLANK ( autoCalendar[Date], [Total Sales] ), ALL ( autoCalendar[Year-Month] ) ) RETURN TOTALYTD ( SUM ( sales[Total_Sales] ), CurrentDate )
entonces finalmente
Project sales = [This Year Sales]+[Forecast Balance]
EDITAR: Pensando en ello, dado que la única segmentación en la página parece ser el año, puede reducir CurrentDate VAR a solo:
CurrentDate = LASTNONBLANK ( autoCalenar[Date], [Total Sales] )
asumiendo
Total Sales = SUM ( sales[Total_Sales] )
MFelix
Hola @Anónimo,
Hice algunas pruebas y creo que su problema es con respecto a las fechas que tiene en el Calendario, Ventas y Pronóstico, ya que las fechas de pronóstico son solo el primer día de cada mes cuando calcula los valores basados en la Fecha Actual que obtendrá usted los valores para el mes actual en el total de la previsión.
Hice un par de ajustes a sus fórmulas y obtuve el siguiente resultado:
1) Cambio CurrentDate por columna con esta fórmula
Current_Date = IF(
CALCULATE(MAX(AutoCalendar[Date]),
FILTER(Sales,Sales[Sales]>0))>=AutoCalendar[Date],AutoCalendar[Date],
BLANK())
Esto le permite hacer que todas las fechas muestren si están por debajo de la fecha actual
3) El valor previsto cambió al siguiente teniendo en cuenta la columna anterior.
Forecast Balance = CALCULATE(
sum(Forecast[Forecast]),
FILTER(AutoCalendar,ISBLANK(AutoCalendar[Current_Date])))
Esto devolverá todas las filas del pronóstico que tienen las filas en blanco que es lo que necesita sumar.
4) Ventas proyectadas con los nuevos cálculos
Projected Sales = [This Year Sales]+Forecast[Forecast Balance]
Vea la impresión a continuación si el resultado es el que necesita.
Espero que esto ayude
Saludos,
MFelix
Anónimo
En respuesta a MFelix
@MFelix Sí, los resultados en su salida coinciden con lo que estoy buscando. Y sí, también tiene razón en que la hoja de pronóstico solo tiene fechas únicas para el pronóstico mensual. Pensé que era un problema ya que el 1/1/2017 tiene un pronóstico, pero no se facturaron ventas ese día.
Recibo un error al intentar construir la fecha actual usando su fórmula: creo que está relacionado con comparar el resultado de max () con el calendario automático[date]. De hecho, las únicas opciones que surgieron al escribir autocalendar fueron las medidas que había creado. Creo que la expresión espera un valor único al hacer una comparación.
Aquí está el error:
«No se puede determinar un solo valor para la columna» fecha «en la tabla» calendario automático «. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como mínimo, máximo, recuento o suma para obtener un solo resultado»
MFelix
En respuesta a Anónimo
@Anónimo,
¿Está creando una medida o una columna? Tiene que ser una columna.
Saludos
Anónimo
En respuesta a MFelix
@MFelix ah eso tiene sentido. Lo estaba creando como medida. Gracias por la aclaración.
Mattbrice
Esto podría funcionar:
Forecast Balance = VAR CurrentDate = CALCULATE ( LASTNONBLANK ( autoCalendar[Date], [Total Sales] ), ALL ( autoCalendar[Year-Month] ) ) RETURN CALCULATE ( SUM ( Forecast[Forecast] ), FILTER ( VALUES ( Forecast[Date] ), Forecast[Forecast_Date] > CurrentDate ) )
This Year Sales = VAR CurrentDate = CALCULATE ( LASTNONBLANK ( autoCalendar[Date], [Total Sales] ), ALL ( autoCalendar[Year-Month] ) ) RETURN TOTALYTD ( SUM ( sales[Total_Sales] ), CurrentDate )
entonces finalmente
Project sales = [This Year Sales]+[Forecast Balance]
EDITAR: Pensando en ello, dado que la única segmentación en la página parece ser el año, puede reducir CurrentDate VAR a solo:
CurrentDate = LASTNONBLANK ( autoCalenar[Date], [Total Sales] )
asumiendo
Total Sales = SUM ( sales[Total_Sales] )
Anónimo
En respuesta a Mattbrice
¡Eso funciono! El pronóstico ahora muestra los valores correctos. ¡Gracias!