Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
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:
Comprador | Orden de compra | Importe facturado | Importe no facturado | Fecha de modificación |
Jill | 1 | 10 | 90 | 01/01/2024 |
Sota | 2 | 0 | 100 | 01/01/2024 |
Jill | 1 | 50 | 50 | 01/21/2024 |
Sota | 2 | 100 | 0 | 01/21/2024 |
Jill | 1 | 60 | 40 | 02/01/2024 |
Jill | 1 | 100 | 0 | 02/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:
Comprador | Orden de compra | Importe facturado | Importe no facturado | Fecha de modificación | Gastado |
Jill | 1 | 10 | 90 | 01/01/2024 | 10 |
Sota | 2 | 0 | 100 | 01/01/2024 | 0 |
Jill | 1 | 50 | 50 | 01/21/2024 | 50 |
Sota | 2 | 100 | 0 | 01/21/2024 | 100 |
Jill | 1 | 60 | 40 | 02/01/2024 | 10 |
Jill | 1 | 100 | 0 | 02/21/2024 | 50 |
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!
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:
¡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.
Comprador | Orden de compra | Importe facturado | Importe no facturado | Fecha de modificación | Gastado |
Jill | 1 | 10 | 90 | 01/01/2024 | 10 |
Sota | 2 | 0 | 100 | 01/01/2024 | 0 |
Jill | 1 | 50 | 50 | 01/21/2024 | 50 |
Sota | 2 | 100 | 0 | 01/21/2024 | 100 |
Jill | 1 | 60 | 40 | 02/01/2024 | 10 |
Jill | 1 | 100 | 0 | 05/21/2024 | 40 |
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í:
Si se seleccionara Jill en la segmentación, se mostraría lo siguiente:
Y, por último, si se seleccionara Jack en la segmentación, se mostraría:
¡Gracias!
Por favor, vea el archivo adjunto a continuación
Por favor, compruebe si esto es lo que desea
Crear columnas
@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]) )
)