Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
hola
Tengo un informe con datos de ventas y un conjunto de bandas de ingresos. Cada cliente tiene un conjunto de bandas con una fecha de inicio y finalización más un rango de ingresos mínimo y máximo por banda. Cada acuerdo es exclusivo de ese cliente (es decir, tienen varios números de bandas con diferentes rangos de inicio y fin por cliente).
Estoy tratando de conseguir un total de carrera dentro de cada banda, donde 'lleva más' los ingresos gastados a la siguiente banda. He utilizado el ejemplo acumulativo dax de SQLBI y tengo lo que necesito para ejecutar total por transacción, pero no es del todo adecuado para medir su gasto por objetivo de ingresos.
Sales Seg. Customers =
VAR CustomersInSegment = -- Gets the customers in current segment
FILTER (
ALLSELECTED ( 'Dim.Deal'[Customer] ),
VAR SalesOfCustomer = [Sales Amount] -- Computes Sales Amount for one customer
VAR SegmentForCustomer = -- Retrieves the segment
FILTER ( -- a customer belongs to
'Dim.Deal',
NOT ISBLANK ( SalesOfCustomer )
&& 'Dim.Deal'[From] < SalesOfCustomer
&& 'Dim.Deal'[To] >= SalesOfCustomer
)
VAR IsCustomerInSegments = NOT ISEMPTY ( SegmentForCustomer )
RETURN IsCustomerInSegments
)
VAR Result =
CALCULATE (
[Sales Amount], -- Expression to compute
KEEPFILTERS ( CustomersInSegment ) -- Applies filter for segmented customers
)
RETURN
Result
En mi archivo PBIX obteré este resultado:-
Pero lo que también quiero es así, así que toma los 300k anteriores y corre es a través de las bandas para que podamos ver qué número de banda / rango se han reunido hasta ahora y puedo usarlo para algo como porcentaje alcanzado por banda y así sucesivamente.
| De | Para | Objetivo de rango | Logrado | |||
| 0 | 150000 | 150000 | 150000 | |||
| 150001 | 275000 | 124999 | 124999 | |||
| 275001 | 400000 | 124999 | 24999 | |||
| 400001 | 10000000 | 9599999 | 0 |
No puedo averiguar cómo hacer el cálculo para 'llevar' con el total en ejecución a la siguiente fila una vez que hayan alcanzado el objetivo en la fila antes y ejecutar eso por acuerdo de cliente.
¿Puede alguien señalarme al DAX que podría ayudar a lograr esto por favor. PBIX aquí . Gracias.
Solved! Go to Solution.
Hola, @MunroA7
Por favor, corríjame si entendí erróneamente su modelo de datos.
Por favor, compruebe la siguiente imagen y el enlace del archivo pbix de ejemplo abajo.
Total de ventas dentro del rango =
IF (
IF (
[Ventas] >= MAX ( 'Dim.Deal'[To] ),
MAX ( 'Dim.Deal'[To] ),
[Ventas] - MAX ( 'Dim.Deal'[From] )
) < 0,
0,
IF (
[Ventas] >= MAX ( 'Dim.Deal'[To] ),
MAX ( 'Dim.Deal'[To] ),
[Ventas] - MAX ( 'Dim.Deal'[From] )
)
)
https://www.dropbox.com/s/rz18wuq24h73b45/Values%20per%20band.pbix?dl=0
Hola, mi nombre es Jihwan Kim.
Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.
Hola, @MunroA7
Por favor, corríjame si entendí erróneamente su modelo de datos.
Por favor, compruebe la siguiente imagen y el enlace del archivo pbix de ejemplo abajo.
Total de ventas dentro del rango =
IF (
IF (
[Ventas] >= MAX ( 'Dim.Deal'[To] ),
MAX ( 'Dim.Deal'[To] ),
[Ventas] - MAX ( 'Dim.Deal'[From] )
) < 0,
0,
IF (
[Ventas] >= MAX ( 'Dim.Deal'[To] ),
MAX ( 'Dim.Deal'[To] ),
[Ventas] - MAX ( 'Dim.Deal'[From] )
)
)
https://www.dropbox.com/s/rz18wuq24h73b45/Values%20per%20band.pbix?dl=0
Hola, mi nombre es Jihwan Kim.
Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.
Lo siento, debería ser visual ahora.