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.
Tengo un conjunto de datos que comienza en julio de 2023 y se actualiza cada mes. La última actualización es hasta noviembre de 2024. Diciembre de 2024 todavía tiene que llegar. Estoy usando la medida DATEADD para observar los promedios de clientes del año anterior para un período determinado en función del año o mes que el usuario final elija en una segmentación.
La función que estoy usando es:
Promedio del año anterior = CALCULATE(Customers[Average],DATEADD('Tabla de fechas'[Date],-1,YEAR)))
En general, esto me está dando lo que necesito. Cuando selecciono un mes específico en la segmentación, la función me da el promedio del año anterior para ese mes específico. Cuando selecciono un conjunto de meses, devuelve los promedios del año anterior para cada mes respectivo y los promedia juntos.
Ejemplo #1:
Selecciono Jul y Oct 2024 (amarillo) en la segmentación... Promedia los promedios de 2023 del año anterior para esos meses (azul). Todo está bien. Justo lo que estoy buscando.
Sin embargo, me encuentro con un problema cuando no se selecciona nada en la segmentación o selecciono todo 2024. En ambos escenarios, la función hace referencia y promedia colectivamente solo los meses del 23 de julio a noviembre de 2023 (amarillo) del año anterior. No incluye el promedio de diciembre de 2023, que luego devolvería el promedio completo del año 2023 (azul).
Ejemplo #2:
Supongo que esto se debe a que los datos de diciembre de 2024 aún no existen en el conjunto de datos y, por lo tanto, aún no hay una opción "Dic 2024" en el segmentador para hacer referencia a "Dic 2023".
Lo que me gustaría es que el usuario pueda conservar la funcionalidad en el Ejemplo # 1 (es decir, elegir diferentes meses y obtener los promedios del año anterior para esos meses).... pero también, en el Ejemplo #2, cuando seleccionan un año completo (como la casilla de verificación 2024), devuelve todo lo del año anterior. Básicamente, el azul.
Soy nuevo en Power BI y DAX, por lo que no estoy seguro de si esto se puede lograr con esta función.
Si no es así, ¿funcionaría mejor otra función o se puede aplicar alguna solución alternativa?
Cualquier idea es muy apreciada. ¡Gracias!
Solved! Go to Solution.
Hola @Ikigai
Por favor, pruebe esto:
PreviousYear2 =
VAR FullYear =
CALCULATE (
[Total Revenue],
FILTER ( ALL ( Dates ), Dates[Year] = MAX ( Dates[Year] ) - 1 )
)
VAR LastYear =
CALCULATE ( [Total Revenue], DATEADD ( Dates[Date], -1, YEAR ) )
VAR MonthSelectedTest =
--test if allselected months less than all months
COUNTROWS ( ALLSELECTED ( Dates[Month Short] ) ) < COUNTROWS ( ALL ( Dates[Month Short] ) )
RETURN
--will return the full last year if year if no period is selected
IF ( MonthSelectedTest, LastYear, FullYear )
Se adjunta un ejemplo de pbix
Hola @Ikigai
Por favor, pruebe esto:
PreviousYear2 =
VAR FullYear =
CALCULATE (
[Total Revenue],
FILTER ( ALL ( Dates ), Dates[Year] = MAX ( Dates[Year] ) - 1 )
)
VAR LastYear =
CALCULATE ( [Total Revenue], DATEADD ( Dates[Date], -1, YEAR ) )
VAR MonthSelectedTest =
--test if allselected months less than all months
COUNTROWS ( ALLSELECTED ( Dates[Month Short] ) ) < COUNTROWS ( ALL ( Dates[Month Short] ) )
RETURN
--will return the full last year if year if no period is selected
IF ( MonthSelectedTest, LastYear, FullYear )
Se adjunta un ejemplo de pbix
¡Muchas gracias, danextian!
Esto funcionó perfectamente. Agradezco su ayuda y asistencia.
Hola @Ikigai - puedes modificar tu medida
Promedio del año anterior =
SI (
ISFILTERED('Tabla de fechas' [nombre del mes]),
-- Caso 1: Si se filtran los meses, use DATEADD para los respectivos meses del año anterior
CALCULATE(Clientes[Promedio], DATEADD('Tabla de fechas'[Fecha], -1, AÑO)),
-- Caso 2: Si no hay un filtro de mes específico, calcule el promedio completo del año anterior
CALCULAR(
Clientes[Promedio],
DATESBETWEEN(
'Tabla de fechas'[Fecha],
DATEADD(STARTOFYEAR('Tabla de fechas'[Fecha]), -1, AÑO),
DATEADD(ENDOFYEAR('Tabla de fechas'[Fecha]), -1, AÑO)
)
)
)
Pruebe la medida anterior. Conserva la capacidad de calcular meses específicos del año anterior cuando se seleccionan.
Garantiza que todo el año anterior se utilice para los cálculos cuando se selecciona el año completo o no se selecciona nada.
Hola Rajendrangole1,
Muchas gracias por su respuesta y asistencia.
Ingresé la medida modificada que proporcionó, pero desafortunadamente, sigo obteniendo el mismo resultado en la captura de pantalla Ejemplo # 2: aún puedo obtener promedios de meses anteriores cuando se selecciona, pero aún no obtengo el promedio del año completo de 2023 cuando no se selecciona segmentación o se marca 2024.
Volví a comprobarlo para asegurarme de que he introducido exactamente la medida modificada, pero sigo obteniendo el mismo resultado.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.