Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Comunidad de Hi Power BI,
Tengo dos dudas:
1. Hay una tabla con fecha, columna de cantidad. El período de tiempo de la tabla abarca alrededor de 6 años. Estoy usando visual de tabla con jerarquía de fechas (solo año y mes en eje). Mi requisito es calcular los 3 años totales para el mismo mes.
Asumamos la fila de abril:
2020 Abril => 2020 Abril + 2019 Abril + 2018 Abril.
Escribí una fórmula DAX:
CALCULAR(
SUM('Tabla'[Importe]),
FILTRO(
DATESINPERIOD(«Cuadro»[Fecha],LASTDATE('Table'[Fecha]),-3,YEAR),
MES('Tabla'[Fecha]) = MES(LASTDATE('Table'[Fecha]))
)
)
Pero aporta el valor para cada mes. Quiero decir, cualquiera que sea el valor para abril de 2021, está trayendo ese. Creo que me falta otra condición de filtro en alguna parte, pero no pude averiguarlo.
2. Estaba leyendo sobre total acumulado y encontré esta fórmula:
Ejecución de la medida total = CALCULATE ( SUM ( 'All Web Site Data (2)''[UniquePageviews] ), FILTER ( ALL ( 'All Web Site Data (2)' ), 'All Web Site Data (2)''[Date] <= MAX ( 'All Web Site Data (2)'[Date] ) )
Pero no podía entender una parte. Pero, ¿cómo aporta MAX el valor para el contexto de filtro actual. ¿Y también cómo funciona el 'Todos los datos del sitio web (2)'[Fecha] <= si el contexto del filtro sigue en su lugar?
¡gracias!
Solved! Go to Solution.
Hola, @dax_newbie
De acuerdo con su descripción y requisito, creo que puede crear una medida que sólo utiliza variables y la función Calculate() para lograr esto, puede probar esta medida:
También he creado algunos datos de prueba basados en su descripción:
Last 3 years Same Month Sum =
var _selectedyear=YEAR(MIN('Table'[Date]))
var _selectedmonth=MONTH(MIN('Table'[Date]))
return
CALCULATE(SUM('Table'[Amount]),
FILTER(
ALL('Table'),
YEAR([Date])>=_selectedyear-2&&
YEAR([Date])<=_selectedyear&&
MONTH([Date])=_selectedmonth))
A continuación, cree una segmentación de datos para colocar la columna año y mes, un objeto visual de tabla para colocar esta medida:
Y puedes conseguir lo que quieras, así:
Puede descargar mi archivo pbix de prueba a continuación
¡Muchas gracias!
Si este resultado no es el que desea, puede publicar algunos datos de ejemplo (sin datos confidenciales) y el resultado esperado.
Cómo obtener respuestas rápidamente a su pregunta
Saludos
Equipo de soporte comunitario _Robert Qin
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola, @dax_newbie
De acuerdo con su descripción y requisito, creo que puede crear una medida que sólo utiliza variables y la función Calculate() para lograr esto, puede probar esta medida:
También he creado algunos datos de prueba basados en su descripción:
Last 3 years Same Month Sum =
var _selectedyear=YEAR(MIN('Table'[Date]))
var _selectedmonth=MONTH(MIN('Table'[Date]))
return
CALCULATE(SUM('Table'[Amount]),
FILTER(
ALL('Table'),
YEAR([Date])>=_selectedyear-2&&
YEAR([Date])<=_selectedyear&&
MONTH([Date])=_selectedmonth))
A continuación, cree una segmentación de datos para colocar la columna año y mes, un objeto visual de tabla para colocar esta medida:
Y puedes conseguir lo que quieras, así:
Puede descargar mi archivo pbix de prueba a continuación
¡Muchas gracias!
Si este resultado no es el que desea, puede publicar algunos datos de ejemplo (sin datos confidenciales) y el resultado esperado.
Cómo obtener respuestas rápidamente a su pregunta
Saludos
Equipo de soporte comunitario _Robert Qin
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Tengo ventas durante 3 años como 2022 y 2023 y 2024 ahora, si uso el mismo período del año pasado, obtendré ventas de 2023, así que si obtengo ventas de 2022, ayúdame a recuperar esto
Esto realmente me ayudó a obtener un cálculo similar. ¡¡Muchas gracias!!
Hola, @dax_newbie
Por favor, pruebe la siguiente medida.
Mismo mes 3 años Total =
CALCULAR (
[Cantidad],
FILTRO ( TODOS ( Fechas ), Fechas[Mes] = MAX ( Fechas[Mes] ) ),
DATESINPERIOD ( Fechas[Fecha], LASTDATE ( Fechas[Fecha] ), -3, AÑO )
)
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.
@dax_newbie , con abril seleccionado se puede tratar de medir como medida de ejemplo
Supongamos que abril de 2021 está seleccionado
Ventas MTD = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-12,MONTH)))) +
CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-24,MONTH)))) +CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-36,MONTH))
Hola @amitchandak Gracias por la respuesta. Pero estoy tratando de llegar a una solución que se puede cambiar fácilmente. Supongamos que si quisiera hacer que los últimos 10 años en total, tendría que agregar una gran cantidad de función DATESMTD.