Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Cuantificación del total facturado por mes

Hola

Estoy tratando de crear un sistema de seguimiento de presupuesto mensual que me diga cuánto dinero he facturado cada mes. Tengo un conjunto de datos que se actualiza dos veces al mes sobre qué órdenes de compra se han realizado y cuánto se ha facturado. A continuación se muestra un ejemplo de conjunto de datos:

CompradorOrden de compraImporte facturado Importe no facturadoFecha de modificación
Jill1109001/01/2024
Sota2010001/01/2024
Jill1505001/21/2024
Sota2100001/21/2024
Jill1604002/01/2024
Jill1100002/21/2024

La parte complicada es que a veces mis órdenes de compra se facturan en partes. Esto significa que podría pagar una factura en 3 transacciones separadas o solo en una transacción directamente.

Para calcular con precisión la cantidad de dinero gastado en un mes, creo que necesitaría una medida que sea capaz de hacer algo como lo que explico a continuación:

SI los meses anteriores tienen el mismo # de orden de compra, tome la diferencia del número MAX con ese # de orden de compra de la entrada actual y el valor MAX con ese # de orden de compra de los meses anteriores, el valor de ELSE es el mes actual

Soy nuevo en DAX, así que me cuesta escribir esto en una nueva medida. El resultado ideal sería:

CompradorOrden de compraImporte facturado Importe no facturadoFecha de modificaciónGastado
Jill1109001/01/202410
Sota2010001/01/20240
Jill1505001/21/202450
Sota2100001/21/2024100
Jill1604002/01/202410
Jill1100002/21/202450

Con esta nueva columna, creo que tendría que buscar los valores MAX para cada uno de los #s de órdenes de compra de cada mes y sumarlos para obtener el total gastado para ese mes. Por lo tanto, esta medida revisaría el PO 1 de enero y encontraría que el máximo es 50 y luego revisaría el PO 2 de enero y encontraría que el máximo es 100 y luego los sumaría para decir que el total gastado en enero es de 150. Una vez más, no es muy bueno en DAX, por lo que también sería bueno echarle una mano.

Por último, me preguntaba si podría condensar eso aún más y hacer que se escupiera un valor por la cantidad gastada durante el mes de una persona específica.

Estoy seguro de que hay una forma más sencilla de hacer esto, por lo que cualquier idea sería muy apreciada.

¡Gracias de antemano por la ayuda!

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hola Ryan,

Esto es exactamente lo que quiero en la nueva columna. ¿Hay alguna forma de modificarlo para que no se tome solo del mes anterior? Puedo prever una situación en la que no se pague ninguna parte de la factura durante todo un mes. Entonces, para elaborar, podría tener una factura de 100 en enero, no pasa nada en febrero/marzo y luego se paga parcial o totalmente en abril. Me doy cuenta de que probablemente tenga que ver con:

FECHA(ANTERIOR('Tabla'[fecha]),-1)
así que tal vez la solución sea modificarlo para que el filtro busque las mismas órdenes de compra Y fechas un mes antes O dos meses antes O tres meses antes O cuatro meses antes hasta 12 meses? No estoy muy seguro de si hay una manera más fácil de decir cualquier mes anterior.
La columna máxima también es muy útil, pero a partir de esto lucho por crear una medida para sumar los valores máximos del mismo mes y también para sumar todos los valores del mismo mes con una persona específica. Estaría muy agradecido si pudieras guiarme a través de este proceso también. En una situación ideal, me encantaría tener una cortadora que pueda seleccionar qué mes y qué persona y que muestre automáticamente cuánto se gastó en ese mes y/o por esa persona específicamente.
¡Gracias!
Amit
Intenté usar su DAX para crear otra columna, pero parece que no escupe los valores correctos. No estoy seguro de si hice algo mal, pero a continuación se muestra una captura de pantalla.
ProfessorEgg28_0-1715106501875.png

¡Gracias a ti también!

¿Podría actualizar los datos de muestra y el resultado esperado? A continuación, actualizaré la solución

Hola Ryan,

Lo que creo es la forma en que la columna actual solo tiene en cuenta un mes de retraso. Entonces, lo que me gustaría que la columna buscara todas las entradas con el mismo PO un número infinito de meses atrás. Así, por ejemplo, con un conjunto de datos en el que no tengo un pago parcial de la factura durante 3 meses, seguiría mostrando que el total de ese mes es 40.

CompradorOrden de compraImporte facturado Importe no facturadoFecha de modificaciónGastado
Jill1109001/01/202410
Sota2010001/01/20240
Jill1505001/21/202450
Sota2100001/21/2024100
Jill1604002/01/202410
Jill1100005/21/202440

Por último, para el objeto visual de PowerBI, preferiblemente me gustaría un panel que pueda mostrar el gasto mensual de la factura y también mostrarlo en función de la persona, así como en función de una segmentación de datos que le permita seleccionar a la persona. Así que el gráfico se mostraría así:

ProfessorEgg28_0-1715149052886.png

Si se seleccionara Jill en la segmentación, se mostraría lo siguiente:

ProfessorEgg28_1-1715149143429.png

Y, por último, si se seleccionara Jack en la segmentación, se mostraría:

ProfessorEgg28_2-1715149215831.png

¡Gracias!

@ProfessorEgg28

Por favor, vea el archivo adjunto a continuación

Syndicate_Admin
Administrator
Administrator

@ProfessorEgg28

Por favor, compruebe si esto es lo que desea

Crear columnas

fecha = fecha(año('Mesa'[Fecha de modificación]),mes('Mesa'[Fecha de modificación]),1)
Columna =
ven _last=maxx(FILTER('Tabla','Tabla'[Orden de compra]=EARLIER('Tabla'[Orden de compra])&&'Tabla'[fecha]=EFECHA(EARLIER('Tabla'[fecha]),-1)),'Tabla'[Importe facturado ])
reygiro if(ISESPACIO EN BLANCO(_last),'Tcapaz'[Invoiced Cantidad ],'Tcapaz'[Invoiced Cantidad ]-_last)
ifmax = si('Mesa'[Columna]=CALCULAR(máximo('Mesa'[Columna]),TODOSEXCEPTO('Mesa','Mesa'[Orden de compra],'Mesa'[fecha])),"Max")
11.PNG
Por favor, vea el archivo adjunto a continuación
Syndicate_Admin
Administrator
Administrator

@ProfessorEgg28 , primero crea una nueva columna

Importe facturado incremental =
VAR CurrentInvoiced = [Importe facturado]
VAR AnteriorFacturadoMax = CALCULAR(
MAX('Tabla'[Importe facturado]),
[Orden de compra] = ANTERIOR([Orden de compra]),
[Fecha de modificación] < ANTERIOR([Fecha de modificación])
)
DEVOLUCIÓN
SI(
ISBLANK(AnteriorFacturadoMax),
CurrentInvoiced,
CurrentInvoiced - PreviousInvoicedMax
)

Medida 1

Total Mensual Facturado =
SUMX(
FILTRO(
'Tabla',
MONTH('Tabla'[Fecha de modificación]) = MES(HOY()) && AÑO('Tabla'[Fecha de modificación]) = AÑO(HOY())
),
'Tabla'[Importe facturado incremental]
)

Medida 2

Total mensual facturado por el comprador =
CALCULAR(
[Total mensual facturado],
ALLEXCEPT('Tabla', 'Tabla'[Comprador])
)

o

Total mensual facturado por el comprador =
CALCULAR(
[Total mensual facturado],
filter(all('Tabla') , 'Tabla'[Comprador] = max('Tabla'[Comprador]) )
)

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.