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 a todos
Estoy tratando de resolver una solución para el filtrado dinámico de los últimos N meses de importe de transacción acumulativa. Lo que quería es seleccionar el número de meses del filtro Últimos N Meses (creado a través de parámetro) en función de la fecha seleccionada de otro filtro (que es una tabla de fechas desconectada de la fecha distinta de la tabla de hechos).
Pude crear un mesure para la Cantidad Total De Transsaction y me está dando el resultado exacto que quería. Pero no puedo hacer que funcione para el importe de transacción acumulativa, ya que básicamente devuelve la misma salida del importe total de la transacción.
Lo que quería es en lugar de devolver los valores en rojo,quiero los valores junto a él (es decir, $324,835 en lugar de -$82,014, $385,398 en lugar de -$21,451 y así sucesivamente). También quiero que el valor en abril-2021 esté en blanco.
A continuación se muestra la medida DAX:
Importe acumulado de la transacción Últimos N Meses =
Solved! Go to Solution.
// Because your model is not structured correctly
// with a proper date table, you pay the price
// by having a complex calculation of the previous
// date. You've got yourself to blame for that.
Cumulative Transaction Amount Last N Months =
var MonthsBack = [Last N Months Value]
VAR CurrentDate = SELECTEDVALUE( DateFilter[Date] )
var CurrentYear = Year( CurrentDate )
var CurrentMonth = Month( CurrentDate )
var PreviousYear_ =
CurrentYear
- CEILING(
DIVIDE(
MAX( 0, MonthsBack - CurrentMonth ),
12
),
1
)
var PreviousMonth_ =
1 + MOD(
CurrentMonth - MonthsBack,
12
)
VAR PreviousDate =
DATE(
PreviousYear_,
PreviousMonth_,
1
)
VAR Result =
CALCULATE(
[Cumulative Transaction Amount],
PreviousDate <= TransactionTbl[Date],
TransactionTbl[Date] <= CurrentDate,
// This last line must be here if the column
// comes from TransactionTbl. If it comes from
// the disconnected table, you don't have to
// add it.
REMOVEFILTERS( TransactionTbl[MonthYear] )
)
RETURN
ResultA pesar de que la medida anterior funciona, es frágil porque su modelo es incorrecto. Le sugiero encarecidamente que cree un buen modelo para que los cálculos basados en el tiempo se puedan realizar utilizando los medios estándar: una tabla de fechas adecuada y las funciones de información de tiempo. Esto también eliminará la complejidad de la medida anterior.
hola
No estoy seguro de lo que desea, pero ver si este artículo en mi sitio ayuda - Flexionar una tabla dinámica para mostrar los datos durante x meses terminó un cierto mes definido p...
Muchas gracias por los comentarios ashish. Yo mismo encontré una solución que leeré el aricle.
salud
LarsAustin
// Because your model is not structured correctly
// with a proper date table, you pay the price
// by having a complex calculation of the previous
// date. You've got yourself to blame for that.
Cumulative Transaction Amount Last N Months =
var MonthsBack = [Last N Months Value]
VAR CurrentDate = SELECTEDVALUE( DateFilter[Date] )
var CurrentYear = Year( CurrentDate )
var CurrentMonth = Month( CurrentDate )
var PreviousYear_ =
CurrentYear
- CEILING(
DIVIDE(
MAX( 0, MonthsBack - CurrentMonth ),
12
),
1
)
var PreviousMonth_ =
1 + MOD(
CurrentMonth - MonthsBack,
12
)
VAR PreviousDate =
DATE(
PreviousYear_,
PreviousMonth_,
1
)
VAR Result =
CALCULATE(
[Cumulative Transaction Amount],
PreviousDate <= TransactionTbl[Date],
TransactionTbl[Date] <= CurrentDate,
// This last line must be here if the column
// comes from TransactionTbl. If it comes from
// the disconnected table, you don't have to
// add it.
REMOVEFILTERS( TransactionTbl[MonthYear] )
)
RETURN
ResultA pesar de que la medida anterior funciona, es frágil porque su modelo es incorrecto. Le sugiero encarecidamente que cree un buen modelo para que los cálculos basados en el tiempo se puedan realizar utilizando los medios estándar: una tabla de fechas adecuada y las funciones de información de tiempo. Esto también eliminará la complejidad de la medida anterior.
Hola Daxer. Muchas gracias por sus comentarios y por tomarse el tiempo para buscar una solución a mi problema. De hecho, encontré la solución (Medir detalles a continuación). La clave es el uso de SELECTEDVALUE. No es tan elegante (y tal vez no tan eficiente) como la solución que se te ocurrió, pero funciona.
También hice cambios en la variable PreviousMonth mediante EDATE en lugar de DATE.
gracias
LarsAustin
The Power BI Data Visualization World Championships is back! It's time to submit your entry.