Forum Discussion
indefinido
En el gráfico de barras, hay un porcentaje de crecimiento para 2024 y 2025, así que cómo se calcula, supongamos que en 2024 tenemos 22119 y DIN 2025 tenemos 25644, aproximadamente un 15% de crecimiento, así que en este tenemos un diagrama de barras drill down drill up, se muestra en; Ese medio, así que cuando analizamos mostrando los valores de 2024 y 2025, queremos ese crecimiento en lugar del valor total que necesitamos para mostrar el porcentaje de crecimiento, ahora también queremos el porcentaje de crecimiento de las bases de ese mes, como que el crecimiento está llegando para todos los meses hasta el mes seleccionado, Así que para qué mes de crecimiento, intenta mostrar los valores con y porcentajes también o crea una especie de cuadro de diálogo o crea un aspecto visual que puedes cambiar solo al porcentaje, a partir de ahí podemos cambiar a los valores numéricos, lo que quiera que quieran ver los valores porcentuales, lo que vieron en números, pero la cuestión es que cuando alguien perfora a nivel anual, entonces la diferencia debería estar en medio El año actual y el anterior, supongamos que alguien ha seleccionado octubre, todos los meses hasta octubre que están en 2024 y nosotros estuvimos en 2025, en 2025 mostrará la página de porcentaje de crecimiento de todos los meses que están ahí, como en enero de 2024 antes el valor era 10 y en enero de 2025 el valor es 20 ok, El porcentaje de crecimiento es 100%, así que debería ser así para cada mes, también debería calcularse y luego, si hacemos algunos para enero a octubre, porque seleccionaste hasta octubre, así que de enero a octubre en ambos años el porcentaje de crecimiento también debería calcular el valor justo después de este valor. Supongamos que si alguien elige septiembre o agosto, solo hasta ese porcentaje de crecimiento debería llegar, así que ¿cómo puedo necesitar solucionar este problema
11 Replies
- Syndicate_Admin
Administrator
@Sreelatha , podemos usar ISINSCOPE para cambiar madre, QOQ y YOY
Suponiendo que ya tenemos la medida de , podemos usar el offset para eso. Empieza por el nivel de hoja
Switch(true(),
isinscope(Fecha[Mes Año]), [MOM %],
isinscope(Fecha[Año Qtr]), [QOQ%],[YOY %]
)Ejemplo de desplazamiento
Último punto= SWITCH(TRUE(),ISINSCOPE('Fecha'[Año Mensual]), CALCULATE([Net], OFFSET(-1,ALLSELECTED('Fecha'[Año Mes], 'Fecha'[Ordenar Año Mes],'Fecha'[Qtr],'Fecha'[Año]),ORDENAR('Data'[Ordenar Año Mes]))),ISINSCOPE('Fecha'[Qtr]), CALCULATE([Net], OFFSET(-1,ALLSELECTED('Date'[Qtr],'Date'[Year]),ORDERBY('Date'[Qtr]))),CALCULATE([Net], OFFSET(-1,ALLSELECTED('Fecha'[Año]),ORDENA('Fecha'[Año]))))
Cómo usar el offset para eso
Categorías de comparación de offset de Power BI, Time Intelligence MOM, QOQ y año anual: https://youtu.be/5YMlkDNGr0U
Usar TI para eso
Inteligencia Temporal, DATESMTD, DATESQTD, DATESYTD, Semana tras semana, Semana hasta la fecha, Periodo personalizado periodo tras periodo,
Periodo de costumbre hasta la fecha: https://youtu.be/aU2aKbnHuWs&t=145s
Subtotal y total general de cambio en Power BI | Tutoriales de Power BI| ISINSCOPE: https://youtu.be/smhIPw3OkKA - Syndicate_Admin
Administrator
Hola @Sreelatha
Estás pidiendo 3 cosas a la vez:
Un porcentaje de crecimiento entre el año actual y el anterior.
A nivel mensual – crecimiento mensual frente al mismo mes del año pasado.
A nivel anual – porcentaje de crecimiento para el periodo acumulado desde enero hasta el último mes seleccionado (por ejemplo, enero–octubre de 2024 frente a enero–octubre de 2025).
A continuación se muestra un posible patrón.
1. Medida base
Valor total :=
SUM ('Hecho'[Importe)] -- sustituye por tu tabla de hechos + columna
Y una tabla estándar de Calendario relacionada con el hecho con una columna [Fecha].2. Crecimiento mensual frente al mismo mes del año pasado
Cuando el visual se reduce a meses, quieres para cada mes:
\text{Crecimiento %} = \frac{\text{Valor CY} - \texto{Valor PY}}{\text{Valor PY}}
Mes % de crecimiento :=
VAR CurrentValue =
[Valor total]
VAR PrevYearValue =
CALCULATE (
[Valor total],
SAMEPERIODLASTYEAR ('Calendario'[Fecha])
)
DEVOLUCIÓN
DIVIDE (ValorCorriente - ValorAnualAnterior, ValorAnualAnterior)
Si tu eje es Año → Mes, esta medida devolverá:Para enero de 2024: crecimiento frente a enero de 2023
Para enero de 2025: crecimiento frente a enero de 2024
etcetera.
3. Porcentaje de crecimiento acumulado hasta el mes seleccionado (según el nivel anual)
A nivel anual (solo una barra para 2024 y una barra para 2025), no quieres el valor total: quieres el crecimiento acumulado desde enero hasta la última fecha visible (por ejemplo, octubre si el usuario seleccionó octubre).
Crecimiento % acumulado vs LY :=
VAR MaxVisibleDate =
MAX ('Calendario'[Fecha])
VAR StartOfYearCurrent =
FECHA ( AÑO ( MaxVisibleDate ), 1, 1 )-- Año actual: del 1 de enero del año en curso hasta la fecha seleccionada
VAR ValorPeriodCorriente =
CALCULATE (
[Valor total],
FECHAS entre ( 'Calendario'[Fecha], InicioDel Año Actual, MaxVisibleDate )
)-- Mismo periodo del año pasado: del 1 de enero (el año pasado) hasta el mismo día del año pasado
VAR StartOfYearPrev =
EDATE (InicioOfYearCurrent, -12)
VAR EndPrev =
EDATE (MaxVisibleDate, -12)
VAR PrevPeriodValue =
CALCULATE (
[Valor total],
FECHAS entre ( 'Calendario'[Fecha], InicioOfYearPrev, EndPrev )
)
DEVOLUCIÓN
DIVIDE (ValorPeriodCorriente - ValorPeriodAnterior, ValorPeriodAnterior)
Así que si el usuario selecciona hasta octubre de 2025, la medida se compara:Sum (enero–octubre 2025) vs Sum (enero–octubre 2024)
Si el usuario selecciona hasta septiembre, pasa a ser enero-septiembre vs enero-septiembre, etc.
4. Una medida combinada que se comporta de manera diferente según el nivel de perforación
Si quieres uno, mide que:
Rendimientos a nivel anual de crecimiento acumulado (enero – mes seleccionado año actual vs año pasado)
Rendimientos mensuales a nivel mensual frente al mismo mes del año pasado
puedes usar ISINSCOPE:
Porcentaje de crecimiento (año / mes) :=
VAR MaxVisibleDate =
MAX ('Calendario'[Fecha])
VAR StartOfYearCurrent =
FECHA ( AÑO ( MaxVisibleDate ), 1, 1 )VAR ValorPeriodCorriente =
CALCULATE (
[Valor total],
FECHAS entre ( 'Calendario'[Fecha], InicioDel Año Actual, MaxVisibleDate )
)VAR StartOfYearPrev =
EDATE (InicioOfYearCurrent, -12)
VAR EndPrev =
EDATE (MaxVisibleDate, -12)
VAR PrevPeriodValue =
CALCULATE (
[Valor total],
FECHAS entre ( 'Calendario'[Fecha], InicioOfYearPrev, EndPrev )
)VAR GrowthYTD =
DIVIDE (ValorPeriodCorriente - ValorPeriodAnterior, ValorPeriodAnterior)VAR CurrentMonthValue = [Valor total]
VAR PrevMonthValue =
CALCULATE (
[Valor total],
SAMEPERIODLASTYEAR ('Calendario'[Fecha])
)
VAR GrowthMonth =
DIVIDE (ValorMensualActual - Valor del MesAnterior, Valor del Mes Anterior)
DEVOLUCIÓN
SWITCH (
TRUE (),-- Nivel de curso (por ejemplo, solo 2024, 2025)
ISINSCOPE ('Calendario'[Año])
&& NO ISINSCOPE ( 'Calendario'[Mes] ),
Crecimiento Hasta el año,-- Nivel de mes
ISINSCOPE ('Calendario'[Año])
&& ISINSCOPE ( 'Calendario'[Mes] ),
GrowthMonth,--Reserva
Crecimiento acumulado
)
Asegúrate de que tu eje realmente use 'Calendario'[Año] y 'Calendario'[Mes] (o las columnas correspondientes que tengas).5. Cambio entre valores y porcentajes (números frente a crecimiento)
Si quieres que el usuario elija entre "números" y "porcentaje" en el mismo gráfico de barras:
Crea dos medidas: [Valor total] y Crecimiento % (Año / Mes).
Utiliza un parámetro de campo (Power BI Desktop > Modeling > New Field Parameter) para crear un parámetro con esas dos medidas.
Coloca el parámetro en el eje Y del gráfico y usa el segmentador que se creó para cambiar entre "Valor" y "Crecimiento %".
Por aquí:
El drill-down funciona como siempre.
A nivel anual verán un porcentaje de crecimiento acumulado en lugar de totales brutos.
A nivel mensual verán crecimiento mensual respecto al año pasado.
El último mes visible (septiembre, octubre, etc.) define hasta qué mes se calcula la lógica acumulada.
Si quiere que le ayuden con el modelo específico (nombres de tablas, filtros especiales, etc.), debería adjuntar una captura de pantalla de la vista del modelo y algunos ejemplos de los datos/resultados deseados.
Has dicho:
Formular una respuesta continua en inglés
Al final, en lugar de lo que escribiste en las capturas, dile que adjunte un enlace al PBIX con un pequeño modelo ficticio que coincida con la lógica + una imagen del resultado deseado
ChatGPT dijo:Aquí tienes una respuesta clara y continua que puedes enviarle:
Estás intentando lograr tres comportamientos diferentes en el mismo aspecto visual:
Mostrar el porcentaje de crecimiento entre el año actual y el anterior.
Al analizar meses, muestra el crecimiento mes a mes frente al mismo mes del año pasado.
Al mantenerse en el nivel anual, mostrar el porcentaje de crecimiento acumulado desde enero hasta el último mes seleccionado (por ejemplo, si el usuario seleccionó octubre, compare enero-octubre de ambos años; si seleccionó agosto, comparar enero-agosto, etc.).
A continuación tienes un patrón que puedes usar.
1. Medida base
Valor total :=
SUM ('Hecho'[Importe)] -- Sustituye por tu tabla de hechos y columna2. Crecimiento mensual frente al mismo mes del año pasado
Mes % de crecimiento :=
VAR CurrentValue = [Valor total]
VAR PrevYearValue =
CALCULATE(
[Valor total],
SAMEPERIODLAST year ('Calendar'[Fecha])
)
DEVOLUCIÓN
DIVIDE(ValorCorriente - ValorAnualAnterior, ValorAnualAnterior)
Esto te da el cambio porcentual correcto para cada mes cuando el gráfico se analiza hasta el nivel mensual.3. Crecimiento acumulado basado en el último mes visible
Crecimiento % acumulado vs LY :=
VAR MaxVisibleDate = MAX('Calendar'[Fecha])
VAR StartOfYearCurrent = FECHA(AÑO(MaxVisibleFecha), 1, 1)VAR ValorPeriodCorriente =
CALCULATE(
[Valor total],
DATESBETWEEN('Calendar'[Fecha], InicioOfYearCurrent, MaxVisibleFecha)
)VAR StartOfYearPrev = FECHA(StartOfYearCurrent, -12)
VAR EndPrev = EDATE(MaxVisibleDate, -12)VAR PrevPeriodValue =
CALCULATE(
[Valor total],
DATESBETWEEN('Calendar'[Fecha], InicioOfYearPrev, EndPrev)
)
DEVOLUCIÓN
DIVIDE(ActualPeriodValue - PrevPeriodValue, PrevPeriodValue)
Esto compara el Mes-Seleccionado del año actual con Enero–Mes-Seleccionado del año anterior.4. Una sola medida que cambia automáticamente por nivel de taladro
Porcentaje de crecimiento (Auto) :=
VAR MaxVisibleDate = MAX('Calendar'[Fecha])
VAR StartOfYearCurrent = FECHA(AÑO(MaxVisibleFecha), 1, 1)VAR ValorPeriodCorriente =
CALCULATE(
[Valor total],
DATESBETWEEN('Calendar'[Fecha], InicioOfYearCurrent, MaxVisibleFecha)
)VAR StartOfYearPrev = FECHA(StartOfYearCurrent, -12)
VAR EndPrev = EDATE(MaxVisibleDate, -12)VAR PrevPeriodValue =
CALCULATE(
[Valor total],
DATESBETWEEN('Calendar'[Fecha], InicioOfYearPrev, EndPrev)
)VAR GrowthYTD = DIVIDE(CurrentPeriodValue - PrevPeriodValue, PrevPeriodValue)
VAR CurrentMonthValue = [Valor total]
VAR PrevMonthValue =
CALCULATE(
[Valor total],
SAMEPERIODLAST year ('Calendar'[Fecha])
)VAR GrowthMonth = DIVIDE(CurrentMonthValue - PrevMonthValue, PrevMonthValue)
DEVOLUCIÓN
SWITCH(
TRUE(),
-- Nivel de curso
ISINSCOPE('Calendario'[Año]) &&NO ISINSCOPE('Calendario'[Mes]), Growth(YTD),
-- Nivel de mes
ISINSCOPE('Calendario'[Año]) & ISINSCOPE('Calendario'[Mes]), GrowthMonth,
Crecimiento acumulado
)
Esto te da:Crecimiento basado en el año de año cuando el usuario está a nivel anual.
Crecimiento mes a mes cuando el usuario analiza a meses.
5. Cambio entre valores y porcentajes
Si quieres que el usuario elija si quiere ver números en bruto o % de crecimiento, crea un parámetro de campo con:
[Valor total]
Porcentaje de crecimiento (Auto)
Coloca el parámetro en el eje Y y usa el slicer para cambiar entre valores y porcentajes.
Si necesitas una solución más precisa basada en tu modelo real, por favor sube un enlace a un pequeño PBIX de muestra (los datos ficticios están bien) que refleje la lógica, y también adjunta una imagen del resultado esperado.
Si esta publicación te ayuda, por favor considera aceptarla como solución para ayudar a los demás miembros a encontrarla más rápido
- Syndicate_Admin
Administrator
Hola @Sreelatha
Quería comprobar si tuviste la oportunidad de revisar la información proporcionada. No dudes en ponerte en contacto con nosotros si tienes más preguntas.
Gracias.- Syndicate_Admin
Administrator
sí, conectaré
Necesito ayuda para esto
- Syndicate_Admin
Administrator
Dime a qué hora nos veremos
- Syndicate_Admin
Administrator
Sí, ¿cómo puedo contactar contigo?
- Syndicate_Admin
Administrator
Hola @Sreelatha
¿Puedo comprobar si este problema se ha resuelto? Si no es así, no dudes en contactarnos si tienes más preguntas.
Gracias - Syndicate_Admin
Administrator
Hola @Sreelatha
¿Puedo comprobar si este problema se ha resuelto? Si no es así, no dudes en contactarnos si tienes más preguntas.
Gracias