Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hola a todos
¡Póster por primera vez! Agradecería cualquier ayuda que pueda darme con esta pregunta...
Necesito crear una matriz dinámica y un gráfico de líneas que muestre el cambio porcentual en las columnas del año seleccionado. Ejemplo a continuación.
Hay 10 años en el informe y un usuario puede seleccionar cualquier combinación de años. No es necesario que los años seleccionados sean contiguos, sino que se muestran en orden (de izquierda a derecha). Si un usuario agrega más años, la tabla se vuelve a calcular para reflejar todos los cambios porcentuales posibles. Si solo se selecciona 1 año, verá una tabla o gráfico en blanco. Creo que esto significa que una tabla de fechas puede no ser apropiada, ya que quiero que el cálculo funcione en años no contiguos.
El resultado que estoy buscando es exactamente el mismo que si usaras una tabla dinámica para mostrar % de diferencia desde (anterior).
Así que a partir de esto:
Categoría | 2020 | 2022 | 2023 |
A | 405379 | 338089 | 411576 |
B | 263250 | 229064 | 279059 |
C | 19864 | 11037 | 15044 |
D | 90307 | 43171 | 125443 |
E | 30593 | 17600 | 29115 |
Total general | 809393 | 638961 | 860237 |
Quiero esto:
Categoría | 2020 | 2022 | 2023 |
A | -17% | 22% | |
B | -13% | 22% | |
C | -44% | 36% | |
D | -52% | 191% | |
E | -42% | 65% | |
Total general | -21% | 35% |
Y esto:
Encantado de proporcionar más información.
¡Muchas gracias!
Chris.
Espero haber entendido bien. ¿Ayuda esto?
Change =
VAR _Curr = [Amt]
VAR _Prev =
CALCULATE(
[Amt],
OFFSET(
-1,
ALLSELECTED( 'Unpivot'[Year] ),
ORDERBY( 'Unpivot'[Year] )
)
)
VAR _Logic =
IF(
NOT ISBLANK( _Prev ),
_Curr - _Prev
)
RETURN
_Logic
Hola, esa solución está funcionando muy bien. Sin embargo, hay una mejora que me gustaría, si es posible: ¿se puede mostrar el primer año también como una columna en blanco? Esto es necesario porque tener la capacidad de seleccionar cualquier combinación de años significa que el año más antiguo podría no ser el año anterior al primero que se muestra. ¡Espero que tenga sentido!
Gracias.
¡Perfecto! ¡Gracias! ¡Muy apreciado! 😎
Este es un buen uso de OFFSET. Corto, fácil de entender y rápido.
Tal vez intente algo como esto.
Pct Chg =
VAR _CurrentSelected = [Total Value]
VAR _PreviousSelected =
CALCULATE(
[Total Value],
OFFSET(
-1,
ALLSELECTED( 'Unpivot'[Year] ),
ORDERBY( 'Unpivot'[Year] )
)
)
VAR _Logic =
DIVIDE(
_CurrentSelected - _PreviousSelected,
_PreviousSelected
)
RETURN
_Logic
No voy a mentir... Esto me llevó mucho más tiempo de lo que probablemente debería haber hecho. Pero fue un poco complicado. Necesita una tabla de dimensiones de fecha. En mi humilde opinión, si existe una fecha en cualquier parte del modelo, siempre debe tener una tabla de dimensiones de fecha en Power BI.
Delta =
VAR _currenttotal = [Total Value]
VAR _previoustotal =
CALCULATE(
[Total Value] ,
'Date'[Date].[Year] =
MAXX(
FILTER(
CALCULATETABLE(
VALUES( 'Date'[Date].[Year] ) ,
ALLSELECTED('Date'[Date].[Year] )
) ,
'Date'[Date].[Year] < MAX( 'Date'[Date].[Year] )
) ,
'Date'[Date].[Year]
)
)
VAR _delta = _currenttotal - _previoustotal
VAR _pct = DIVIDE( _delta , _previoustotal , BLANK() )
RETURN
_pct
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.