Calcular la desviación entre los ingresos y el presupuesto diario con Direct Query

Un usuario Pregunto ✅

carinam

Hola a todos,

Estamos trabajando con Dynamics 365 for Finance and Operations, desarrollando informes de Power BI desde Entity Store y hemos encontrado un problema. Con Direct Query intentamos calcular la desviación entre los ingresos presupuestados y los ingresos reales por día. Pero el problema es que el presupuesto mensual solo se registra el primer día del mes, por lo que no podemos hacer el cálculo directamente.

Hemos logrado calcular el tamaño del presupuesto por día para cada mes, dividiendo el presupuesto mensual por el número de días hábiles de ese mes. Debido a las limitaciones de Direct Query, utilizamos una segmentación como entrada donde se puede elegir el número correcto de días hábiles de una lista. Queremos poder restar el presupuesto calculado por día de los ingresos reales de ese día. ¿Alguna idea sobre cómo hacer esto?

Saludos,

Carina

Hola @carinam,

No tengo muy claro tu requerimiento. Agregue una tabla visual en el informe, arrastre la fecha, Los campos de ingresos presupuestados e ingresos reales a este elemento visual, aclaran los resultados deseados.

Atentamente,
Qiuyun Yu

carinam

En respuesta a v-qiuyu-msft

Skjermbilde.PNG

Aquí hay una visualización de lo que tenemos. El objetivo es calcular la desviación entre los datos reales y el presupuesto por día, pero para eso necesitamos el presupuesto diario calculado por día. Pero tal como está ahora, solo podemos calcular el presupuesto diario el primer día de cada mes.

En respuesta a carinam

Hola @carinam,

Suponga que estas columnas en el objeto visual de la tabla provienen de la misma tabla, puede crear una medida a continuación:

Desviación = MAX (‘desviación de prueba'[Actual Revenue]) -CALCULAR (SUMA (desviación de la prueba[Daily budget]), FILTRO (TODOS (‘desviación de prueba’), MES (‘desviación de prueba'[Dateval]) = MES (MAX (‘desviación de la prueba'[Dateval])) && YEAR (‘desviación de prueba'[Dateval]) = AÑO (MAX (‘desviación de la prueba'[Dateval]))))

q4.PNG

Atentamente,
Qiuyun Yu

carinam

En respuesta a v-qiuyu-msft

Hola @ v-qiuyu-msft,

Las tablas en el objeto visual no provienen del mismo objeto visual. De hecho, provienen de tres tablas diferentes (datos reales, presupuesto y tabla de fechas). Además, el presupuesto diario es una medida calculada. Trabajar con datos de Entity Store usando DirectQuery limita las posibilidades de fusionar las columnas en la misma tabla, por lo que, aunque su solución sea buena, no podremos usarla.

Atentamente,

Carina

En respuesta a carinam

Hola @carinam,

¿Podría compartir algunos datos de muestra de estas tres tablas para que pueda intentar modificar la medida en consecuencia?

Atentamente,
Qiuyun Yu

carinam

En respuesta a v-qiuyu-msft

Hola @ v-qiuyu-msft

No puedo darle una muestra de los datos reales, pero aquí están las tablas de muestra utilizadas en el ejemplo que le envié:

Budget.pngRevenue.png# WorkDays.png

No he creado una copia de la tabla de fechas que usamos, pero el único campo que he usado es el campo que muestra la fecha. La última tabla es la que usamos para calcular el presupuesto diario. Solo lo uso como filtro y lo uso como entrada en el código DAX para calcular el presupuesto diario:

Presupuesto diario = DIVIDE (SUM (Ingresos[Actual Revenue]), SELECTEDVALUE (NumberOfWorkDays[NumberOfWorkDays], 1))

Atentamente,

Carina

En respuesta a carinam

Hola @carinam,

Según sus datos de muestra, puede crear una medida a continuación:

Desviación = CALCULAR (SUMA (Presupuesto[Budget]), FILTRO (TODOS (‘Ingresos’), MES (‘Ingresos'[Date]) = MES (MAX (‘Ingresos'[Date])) && YEAR (‘Ingresos'[Date]) = AÑO (MAX (‘Ingresos'[Date])))) -[Daily Budget]

Por cierto, el Presupuesto diario La medida que proporcionó debe ser:

Presupuesto diario = DIVIDE (SUM (Budget[Budget]), SELECTEDVALUE (NumberOfWorkDays[NumberOfWorkDays], 1))

Atentamente,
Qiuyun Yu

carinam

En respuesta a v-qiuyu-msft

Hola @ v-qiuyu-msft

Probé tu solución, pero todavía no funciona. El presupuesto diario todavía no se asigna a cada día y la desviación no funciona. Creo que el problema con la asignación del presupuesto diario podría ser que, dado que las únicas fechas en esa tabla son el primero de cada mes, no funcionará. Intentamos fusionar y agregar con el campo de fecha de la tabla de fechas, pero eso no funcionó ya que el modo de almacenamiento cambió al modo de importación. ¡Pero gracias por ayudar!

Atentamente,

Carina

richbenmintz

En respuesta a carinam

Hola @carinam,

Creo que la captura de pantalla a continuación proporciona lo que necesita, la Medida del valor presupuestario se define como

Budget Value = 
 if(SUM(budget[Budget]) = blank() && SUM('revenue'[Actual Revenue]), 
        CALCULATE(
            divide(sum('budget'[Budget]),max(NumberOfWorkdays[NumberOfWorkDays])), FILTER(ALL('budget'), month('budget'[Date]) = MONTH(MIN('Date'[Date]))))
            ,divide(SUM(budget[Budget]),max(NumberOfWorkdays[NumberOfWorkDays])
        )
)

esencialmente, verifique si el Presupuesto está en blanco (), si se reemplaza con el valor asignado para el mes seleccionado, de lo contrario, use la fórmula de asignación simple. Para mayor claridad, acabo de usar el valor máximo del cortador desconectado, puede optar por verificar varios valores y reemplazarlo con un espacio en blanco ().

Espero que esto ayude,

Ricardo

Presupuesto asignado por día.PNG

Deja un comentario

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