Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

¿Cómo puedo asignar un valor único a una variable de forma dinámica?

Importe del año anterior =
Var antAño = Calcular(SELECTEDVALUE("Datos brutos"[Año])-1)
Var prevYearFinal = antAño
devolución CALCULAR(SUMA("Datos brutos"[Cantidad]), "Datos brutos"[Año] EN {2024})

Above code gives me expected results. But when I select 2025 in slicer, the below code is not giving me expected results at all. It shows correct values, but in some places it just shows blank, but the total at end is correct.

Importe del año anterior =
Var antAño = Calcular(SELECTEDVALUE("Datos brutos"[Año])-1)
Var prevYearFinal = antAño
devolución CALCULAR(SUMA("Datos brutos"[Cantidad]), "Datos brutos"[Año] EN {prevYearFinal})


14 REPLIES 14
Syndicate_Admin
Administrator
Administrator

@aforapple_27 ,

¿Podría confirmar si ha resuelto el problema? En caso afirmativo, puede compartir su solución alternativa y marcarla como una solución para que otros usuarios también puedan beneficiarse. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Si no recibimos respuesta, seguiremos adelante y cerraremos este hilo. Si necesitas más ayuda en el futuro, te animamos a que te pongas en contacto con nosotros a través del foro de la comunidad de Microsoft Fabric y crees un nuevo hilo. Estaremos encantados de ayudarte.

Gracias.

Syndicate_Admin
Administrator
Administrator

Hola @aforapple_27 ,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias.

No, este problema aún no se ha solucionado. Tendría que hacer un dato ficticio, supongo, para que ustedes pudieran trabajar con ellos. Simplemente no he podido envolver mi tiempo en torno a ello

Hola @aforapple_27 ,

Gracias por la actualización. Cuando tenga un momento, comparta un conjunto de datos ficticio o una versión simplificada del modelo. Esto me ayudará a reproducir el problema con mayor precisión y le ayudará mejor.

Gracias.

Syndicate_Admin
Administrator
Administrator

Hola

Suponiendo que ya tiene una columna de fecha en la tabla fat (y si no la tiene, la creará), pruebe el siguiente enfoque

  1. Cree una tabla de calendario con una columna calculada para extraer el año
  2. Cree una relación (Varios a uno y único) de la columna Fecha de la tabla Hechos a la columna Fecha de la tabla Calendario
  3. A la segmentación, arrastre Año desde la tabla Calendario y seleccione un Año allí
  4. Escribe estas medidas

Total = SUMA('Datos brutos'[Cantidad])

Total en PY = calcular([Total],añoanterior(calendario[fecha]))

Espero que esto ayude.

Syndicate_Admin
Administrator
Administrator

Hola @v-tsaipranay , @hnguy71

Probé ambos códigos, pero desafortunadamente no funcionó como se esperaba. Mi tabla está haciendo una comparación entre los datos de ventas de 2025 y 2024 mes a mes. La cuestión es que tanto con mi código como con su código, aparece en blanco donde sea que el año seleccionado en la segmentación no tenga transacción. Por ejemplo, si no hubo ninguna transacción en marzo de 2025, aparece en blanco para la transacción de ese mes (lo cual se espera), pero también aparece en blanco para 2024 (hay transacción en marzo de 2024).

Por favor, háganme saber si necesitan más información para apoyarme en esto.

Hola @aforapple_27 ,

Veo lo que está fallando ahora, gracias por la aclaración.

El problema ocurre porque cuando un mes no tiene datos en 2025, el contexto se traslada y bloquea también los datos de 2024.

He actualizado la medida para solucionar este problema asegurándome de que los datos de 2024 sigan apareciendo aunque 2025 esté en blanco:

Importe del año anterior =

VAR prevYear = SELECTEDVALUE('Datos brutos'[Año]) - 1

DEVOLUCIÓN

CALCULAR(

SUM('Datos brutos'[Cantidad]),

TREATAS(

VALUES('Datos brutos' [Mes]),

'Datos brutos'[Mes]

),

'Datos brutos' [Año] = prevAño

)

Espero que esto resuelva su problema, si necesita más ayuda, no dude en comunicarse.

Si esta publicación ayuda, felicitarnos y considerar Acéptalo como una solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Gracias.

Hola @aforapple_27 ,

Quería comprobar si tuvieron la oportunidad de revisar la información proporcionada y también agradecerles @Ashish_Mathur por sus aportes. No dude en ponerse en contacto con nosotros si tiene más preguntas. Si mi respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.


Gracias.

Hola @aforapple_27

¿Le importaría compartir algunos datos de muestra y los resultados esperados?

Hola @aforapple_27 ,

¿Podría compartir algunos datos de muestra y resultados esperados, para que sea fácil de entender y le brinde la mejor solución posible para resolver su problema?

Gracias.

@aforapple_27 ,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias.

Syndicate_Admin
Administrator
Administrator

Hola @,

Gracias por usar el Foro de la comunidad de Microsoft. También gracias @hnguy71 por sus aportes.

El problema se debe al comportamiento del contexto en Power BI:

  • SELECTEDVALUE() funciona en el contexto de la segmentación, pero cuando la medida se evalúa fila por fila (como en una tabla), ese contexto de la segmentación no se mantiene de la misma manera.
  • Los totales funcionan porque el contexto agrega todo el conjunto de datos, pero las filas se quedan en blanco porque la fila en sí no "ve" correctamente el valor de la segmentación.

Pruebe esta medida, he intentado con algunos datos de muestra en mi final funcionó bien:

Importe del año anterior =

VAR prevYearFinal = SELECTEDVALUE('Datos brutos'[Año]) - 1

DEVOLUCIÓN

CALCULAR(

SUM('Datos brutos'[Cantidad]),

'Datos brutos'[Año] = prevAñoFinal

)

También incluyo el archivo pbix para su mejor comprensión, por favor échele un vistazo.

Espero que esto resuelva su problema, si necesita más ayuda, no dude en comunicarse.

Si esta publicación ayuda, felicitarnos y considerar Acéptalo como una solución para ayudar a los demás miembros a encontrarlo más rápidamente.

Gracias.

Hola

Probé su código, pero aún así no funcionó, desafortunadamente en mi caso.

Syndicate_Admin
Administrator
Administrator

Hola @aforapple_27

Pruebe esto en su lugar:

Amount for Previous Year =
var currYear = SELECTEDVALUE('Raw data'[Year])
var prevYear = currYear - 1
return 
CALCULATE(SUM('Raw data'[Amount]), 'Raw data'[Year] = prevYear, ALL('Raw data'))  

Esto debería devolverle el monto del año anterior.

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors