Asignar objetivo mensual al día

Un usuario Pregunto ✅

migueljackpbi

Hola,

Tengo una tabla de hechos y un producto dim con una jerarquía de 3 niveles: Categoría de producto –> Línea de producto –> Producto

Nuestro equipo de planificación publicará un objetivo mensual para cada producto, es decir

Código de producto Producto Objetivo mes año
1 A 234 1 2016
1 A 238 2 2016
1 A 242 3 2016
1 A 254 4 2016
1 A 289 5 2016
2 B 1022 1 2016
2 B 1048 2 2016
2 B 1122 3 2016
2 B 1248 4 2016
2 B 1342 5 2016

Entonces, ahora necesito crear algunos informes que muestren una comparación entre el objetivo real y el objetivo diario. Traté de importar el objetivo mensual de cada producto para todos los días: por ejemplo, el producto A: inserté una nueva columna de fecha:

Código de producto Producto Objetivo mes año fecha
1 A 234 1 2016 1/1/2016
1 A 234 1 2016 2/1/2016
1 A 234 1 2016 3/1/2016
1 A 234 1 2016 4/1/2016
1 A 234 1 2016 05/01/2016
1 A 234 1 2016 06/01/2016
1 A 234 1 2016 7/1/2016
1 A 234 1 2016 1/8/2016
1 A 234 1 2016 1/9/2016
1 A 234 1 2016 10/01/2016
1 A 234 1 2016 11/01/2016
1 A 234 1 2016 12/01/2016
1 A 234 1 2016 13/01/2016
1 A 234 1 2016 14/01/2016
1 A 234 1 2016 15/01/2016
1 A 234 1 2016 16/01/2016
1 A 234 1 2016 17/01/2016
1 A 234 1 2016 18/01/2016
1 A 234 1 2016 19/01/2016
1 A 234 1 2016 20/01/2016
1 A 234 1 2016 21/01/2016
1 A 234 1 2016 22/01/2016
1 A 234 1 2016 23/01/2016
1 A 234 1 2016 24/01/2016
1 A 234 1 2016 25/01/2016
1 A 234 1 2016 26/01/2016
1 A 234 1 2016 27/01/2016
1 A 234 1 2016 28/01/2016
1 A 234 1 2016 29/01/2016
1 A 234 1 2016 30/01/2016
1 A 234 1 2016 31/01/2016

y utilice la función MAX en DAX: Acctualvs.Target = SUM(Quantity)/Avg(Target). Sin embargo, cuando muestro solo el Producto en el informe, el resultado fue correcto, pero cuando muestro la jerarquía del Producto con ProductCategory||ProductLine|| Producto en el informe, el resultado fue incorrecto porque la función promedio no era la suma total del objetivo del producto para cada línea de productos y la suma total del objetivo de la línea de productos para la categoría del producto.

Por favor, dame algún consejo para resolver este problema, ¡es muy importante en todo mi informe! real diario versus objetivo mensual.

Gracias y Saludos cordiales,
j

tringuyenminh92

En respuesta a migueljackpbi

Hola @MichaelJackpbi,

Permítanme refinar el hecho/tenue que estamos teniendo:

  • Trans de ventas (fecha, código de producto, monto de ventas)
  • Productos (Producto, ProductCode, ProductLine, …)
  • Fechas (Fecha) (Será creado por Nueva tabla: Fechas = CALENDARAUTO() )
  • Planificación mensual (mes, año, código de producto, objetivo)
  • Para la planificación diaria, sugiero que usemos la función Power Query para crear esta tabla a partir de la tabla de planificación mensual en lugar de ingresarla manualmente como lo está haciendo.

Mis datos simulados en excel:

Captura de pantalla 2016-12-04 21.33.50.pngCaptura de pantalla 2016-12-04 21.33.46.pngCaptura de pantalla 2016-12-04 21.34.16.png

Primero, calcularé el objetivo para cada transacción (objetivo diario)

En el Editor de consultas -> Nueva consulta -> Consulta en blanco Captura de pantalla 2016-12-04 21.38.04.png

Defina el método GetTarget para buscar en la tabla de planificación mensual por código de producto y mes y devuelva el valor objetivo como resultado:

Captura de pantalla 2016-12-04 21.37.51.png

(productCode,transactionDate) =>
let
    Source = #"Monthly Planning",
    #"Filtered Rows" = Table.First(Table.SelectRows(Source, each ([ProductCode] = productCode 
                                                        and [Month] = Date.Month(transactionDate) 
                                                        and [Year]  = Date.Year(transactionDate) ))
                                ),
    #"Target" = Record.Field(#"Filtered Rows","Target")
in
    #"Target"

En el Editor de consultas, elija Trans. de ventas, pestaña Agregar columna, elija Invocar función personalizada para agregar una nueva columna mediante la función anterior.

Captura de pantalla 2016-12-04 21.45.44.png

Ahora tenemos la columna Sales Trans with Target. Pero hay un problema con el método Sum de Target para Product Line o Product Category que tiene múltiples transacciones en la misma fecha. Esta razón hará que el valor de Target sea incorrecto cuando elija un nivel de producto más alto en los filtros.

Así que resumo la tabla de transacciones de ventas por fecha y código de producto para garantizar que solo haya una transacción de línea para cada fecha.

Sales = SUMMARIZE('Sales Trans','Sales Trans'[Date],'Sales Trans'[ProductCode],"Amount",sum('Sales Trans'[Sales Amount]),"Target",AVERAGE('Sales Trans'[GetTarget]) )

Haciendo relaciones para la tabla Ventas:Captura de pantalla 2016-12-04 21.52.11.png

Creo que deberíamos agregar el valor acumulativo al informe actual, así que creo la Medida calculada:

Cummulative = CALCULATE(sum('Sales'[Amount]),filter(ALL('Dates'),'Dates'[Date]<= MAX('Dates'[Date])  ))

Captura de pantalla 2016-12-04 21.54.54.png

Eso es todo, ahora puede verificar seleccionando la línea de productos o seleccionando todos los productos, mostrará el objetivo que era el objetivo total de productos.

Ejemplo de archivo pbix y datos:

  • Archivo Pbix: https://www.dropbox.com/s/wk3zgxfg1fuv10f/Sample_SalesPlanning.pbix?dl=0
  • datos: https://www.dropbox.com/s/rhq766r6pz8w4xz/SampleData_SalesTrans.xlsx?dl=0
  • Para mostrar la jerarquía, uso una imagen personalizada: https://app.powerbi.com/visuals/show/HierarchySlicer1458836712039

Si esto funciona para usted, acéptelo como solución y también dé KUDOS.

tringuyenminh92

¿Tienes un archivo de muestra allí? para poder entender correctamente su situación.

migueljackpbi

En respuesta a tringuyenminh92

¡Es solo mi idea crear nuevos informes que sirvieron para alguien que solo está planeando depr! tenemos un sistema ERP que contiene registros de ventas diarios y necesitamos comparar el mensual objetivo con las ventas reales para conocer el porcentaje entre ellos o mostrar el crecimiento. ¡Nuestro problema fue el objetivo publicado mensualmente y el sistema de transacciones exporta datos diariamente!
Si usó otras herramientas de BI, puedo completar el valor promedio para cada día del mes dependiendo del valor mensual.

¿Podría tener algún consejo/solución para aplicar en power bi correctamente?

Saludos,
j

tringuyenminh92

En respuesta a migueljackpbi

Hola @MichaelJackpbi,

Permítanme refinar el hecho/tenue que estamos teniendo:

  • Trans de ventas (fecha, código de producto, monto de ventas)
  • Productos (Producto, ProductCode, ProductLine, …)
  • Fechas (Fecha) (Será creado por Nueva tabla: Fechas = CALENDARAUTO() )
  • Planificación mensual (mes, año, código de producto, objetivo)
  • Para la planificación diaria, sugiero que usemos la función Power Query para crear esta tabla a partir de la tabla de planificación mensual en lugar de ingresarla manualmente como lo está haciendo.

Mis datos simulados en excel:

Captura de pantalla 2016-12-04 21.33.50.pngCaptura de pantalla 2016-12-04 21.33.46.pngCaptura de pantalla 2016-12-04 21.34.16.png

Primero, calcularé el objetivo para cada transacción (objetivo diario)

En el Editor de consultas -> Nueva consulta -> Consulta en blanco Captura de pantalla 2016-12-04 21.38.04.png

Defina el método GetTarget para buscar en la tabla de planificación mensual por código de producto y mes y devuelva el valor objetivo como resultado:

Captura de pantalla 2016-12-04 21.37.51.png

(productCode,transactionDate) =>
let
    Source = #"Monthly Planning",
    #"Filtered Rows" = Table.First(Table.SelectRows(Source, each ([ProductCode] = productCode 
                                                        and [Month] = Date.Month(transactionDate) 
                                                        and [Year]  = Date.Year(transactionDate) ))
                                ),
    #"Target" = Record.Field(#"Filtered Rows","Target")
in
    #"Target"

En el Editor de consultas, elija Trans. de ventas, pestaña Agregar columna, elija Invocar función personalizada para agregar una nueva columna mediante la función anterior.

Captura de pantalla 2016-12-04 21.45.44.png

Ahora tenemos la columna Sales Trans with Target. Pero hay un problema con el método Sum de Target para Product Line o Product Category que tiene múltiples transacciones en la misma fecha. Esta razón hará que el valor de Target sea incorrecto cuando elija un nivel de producto más alto en los filtros.

Así que resumo la tabla de transacciones de ventas por fecha y código de producto para garantizar que solo haya una transacción de línea para cada fecha.

Sales = SUMMARIZE('Sales Trans','Sales Trans'[Date],'Sales Trans'[ProductCode],"Amount",sum('Sales Trans'[Sales Amount]),"Target",AVERAGE('Sales Trans'[GetTarget]) )

Haciendo relaciones para la tabla Ventas:Captura de pantalla 2016-12-04 21.52.11.png

Creo que deberíamos agregar el valor acumulativo al informe actual, así que creo la Medida calculada:

Cummulative = CALCULATE(sum('Sales'[Amount]),filter(ALL('Dates'),'Dates'[Date]<= MAX('Dates'[Date])  ))

Captura de pantalla 2016-12-04 21.54.54.png

Eso es todo, ahora puede verificar seleccionando la línea de productos o seleccionando todos los productos, mostrará el objetivo que era el objetivo total de productos.

Ejemplo de archivo pbix y datos:

  • Archivo Pbix: https://www.dropbox.com/s/wk3zgxfg1fuv10f/Sample_SalesPlanning.pbix?dl=0
  • datos: https://www.dropbox.com/s/rhq766r6pz8w4xz/SampleData_SalesTrans.xlsx?dl=0
  • Para mostrar la jerarquía, uso una imagen personalizada: https://app.powerbi.com/visuals/show/HierarchySlicer1458836712039

Si esto funciona para usted, acéptelo como solución y también dé KUDOS.

paulfink

En respuesta a tringuyenminh92

Hola @tringuyenminh92

Acabo de encontrar esta publicación y vi tu respuesta y creo que podrías ayudarme con mi problema, es lo mismo que esta publicación pero necesito objetivos semanales.

Aquí está el enlace a mi pregunta:

https://community.powerbi.com/t5/Desktop/Power-Bi-DAX-Setting-a-Target-for-each-Week-of-Month/td-p/9…

migueljackpbi

En respuesta a tringuyenminh92

@ tringuyenminh92 gracias por tu ayuda! pero todavía no entiendo tu consejo totalmente. ¿Por qué tuviste que crear una consulta en blanco? y veo el cálculo como un formulario MTD.

Lo siento por malentendido

Saludos,
j

tringuyenminh92

En respuesta a migueljackpbi

Hola @MichaelJackpbi,

Porque solo configuramos el objetivo mensual, así que tengo que crear un método (consulta en blanco) para hacer referencia a la configuración del objetivo mensual y obtener ese valor objetivo para cada día del mes. si hacemos eso, no necesitamos configurar manualmente el objetivo diario como su segunda tabla.

ovetteabejuela

En respuesta a tringuyenminh92

Esto es interesante, ¿todavía tienes los archivos compartidos @tringuyenminh92?

tringuyenminh92

En respuesta a ovetteabejuela

Hola @ovetteabejuela,

Como comprobé, los archivos aún están disponibles: archivo y datos pbix de muestra:

  • Archivo Pbix: https://www.dropbox.com/s/wk3zgxfg1fuv10f/Sample_SalesPlanning.pbix?dl=0
  • datos: https://www.dropbox.com/s/rhq766r6pz8w4xz/SampleData_SalesTrans.xlsx?dl=0
  • Para mostrar la jerarquía, uso una imagen personalizada: https://app.powerbi.com/visuals/show/HierarchySlicer1458836712039

ovetteabejuela

En respuesta a tringuyenminh92

@tringuyenminh92 gracias, acabo de darme cuenta de que DropBox está bloqueado en la oficina, pero ahora los tengo… Gracias.

Deja un comentario

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