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
Anonymous
Not applicable

Calcular la base de índice 100 para diferentes productos

Hola

Necesito calcular la función de índice para diferentes productos para mi informe.

Por ejemplo, el usuario puede seleccionar la fecha 2020.01.01.

La producción sería

Producto A - Valor en 2020.01.01 a 100. Valor en otras fechas: valor en esa fecha/valor en 2020.01.01 * 100

Producto B - Valor en 2020.01.01 a 100. Valor en otras fechas: valor en esa fecha/valor en 2020.01.01 * 100

Producto C - Valor en 2020.01.01 a 100. Valor en otras fechas: valor en esa fecha/valor en 2020.01.01 * 100

Por favor, ¿alguien puede mostrarme cómo crear una medida o columna calculada para admitir este cálculo de índice base?

Gracias.

10 REPLIES 10
v-gizhi-msft
Community Support
Community Support

Hola

Por favor, siga estos pasos:

1)Crear una tabla de segmentación separada:

SlicerTable = DISTINCT(SELECTCOLUMNS('Table',"Date",'Table'[Date]))

2)Pruebe esta medida:

Measure = 
IF (
    MAX ( 'Table'[Date] ) = MAX ( SlicerTable[Date] ),
    100,
    (
        MAX ( 'Table'[value] )
            / CALCULATE (
                MAX ( 'Table'[value] ),
                FILTER (
                    ALLSELECTED ( 'Table' ),
                    'Table'[Date] = SELECTEDVALUE ( SlicerTable[Date] )
                )
            )
    ) * 100
)

3)Cuando se elige una fecha en la segmentación de datos, el resultado muestra:

36.PNG

Aquí está mi archivo pbix de prueba:

pbix

Espero que esto ayude.

Saludos

Giotto

Anonymous
Not applicable

Hola @v-gizhi-msft

Gracias por la sugerencia. Creo que su solución resolvió el 90% del problema.

Mirando la tabla, la matemática es precisa para la columna B. Para las columnas A y C, se ancla en función de 7952 (columna B) como inicio del índice.


Por ejemplo, la columna A en 2020-01-02 no debe ser 52. Debe ser (4120/4200)*100 a 98.

¿Puedes ayudarme a revisar la fórmula?

¡Gracias!

Hola

Por favor, pruebe esta medida:

Measure = 
IF (
    MAX ( 'Table'[Date] ) = MAX ( SlicerTable[Date] ),
    100,
    DIVIDE (
        MAX ( 'Table'[value] ),
        CALCULATE (
            MAX ( 'Table'[value] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                'Table'[Date] = SELECTEDVALUE ( SlicerTable[Date] )
                    && 'Table'[Category] IN FILTERS ( 'Table'[Category] )
            )
        )
    ) * 100
)

El resultado muestra:

6.PNG

Vea mi archivo pbix adjunto.

Saludos

Giotto

Anonymous
Not applicable

Gracias @v-gizhi-msft ! ¡Eso funciona!

Ahora necesito crear una subcategoría llamada Producto 1,2,3 para La Categoría A y luego producto 3,4,5 para la Categoría B

¿Cómo podría crear los índices para la columna Categoría y Productos?

Digamos que queremos analizar la tendencia entre la Categoría A y la B. A continuación, tenemos que mirar en la categoría A para ver qué producto está en tendencia mejor.

Traté de reemplazar el Allselected de Categoría a Producto, pero no recoge el producto. Sólo muestra 100 y luego 0.01.

Hola

Por favor, intente esto:

Measure =
IF (
    MAX ( 'Table'[Date] ) = MAX ( SlicerTable[Date] ),
    100,
    DIVIDE (
        MAX ( 'Table'[value] ),
        CALCULATE (
            MAX ( 'Table'[value] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                'Table'[Date] = SELECTEDVALUE ( SlicerTable[Date] )
                    && 'Table'[Category] IN FILTERS ( 'Table'[Category] )
                    && 'Table'[SubCategory] IN FILTERS ( 'Table'[SubCategory] )
            )
        )
    ) * 100
)

Espero que esto ayude.

Saludos

Giotto

Anonymous
Not applicable

bar chart example.PNGGracias @v-gizhi-msft .

Todavía no funciona.....

Esta pregunta se remonta a la pregunta original. También puse un gráfico de barras además de un gráfico de líneas para mostrar % de cambios al indexar para una fecha. Por ejemplo, la tabla en el extremo derecho muestra % de cambio para Cat A, B, C. Sin embargo, el gráfico de barras solo es adecuado para la Categoría C.

Por favor, ¿puede hacerme saber cómo arreglar esta fórmula para adaptarse al gráfico de barras?

Además, ¿podemos agregar una segmentación de datos para una fecha para finalizar el período de cálculo para que podamos ajustar la fecha de indexación inicial y la fecha de cálculo final.

Hola

¿Cuáles son los resultados esperados en este gráfico de barras para las categorías A y B?

Y por favor pruebe esta medida:

Measure =
IF (
    MAX ( 'Table'[Date] ) = MAX ( SlicerTable[Date] ),
    100,
    IF (
        ISINSCOPE ( 'Table'[SubCategory] ),
        DIVIDE (
            MAX ( 'Table'[value] ),
            CALCULATE (
                MAX ( 'Table'[value] ),
                FILTER (
                    ALLSELECTED ( 'Table' ),
                    'Table'[Date] = SELECTEDVALUE ( SlicerTable[Date] )
                        && 'Table'[SubCategory] IN FILTERS ( 'Table'[SubCategory] )
                )
            )
        ) * 100,
        IF (
            ISINSCOPE ( 'Table'[Category] ),
            DIVIDE (
                MAX ( 'Table'[value] ),
                CALCULATE (
                    MAX ( 'Table'[value] ),
                    FILTER (
                        ALLSELECTED ( 'Table' ),
                        'Table'[Date] = SELECTEDVALUE ( SlicerTable[Date] )
                            && 'Table'[Category] IN FILTERS ( 'Table'[Category] )
                    )
                )
            ) * 100
        )
    )
)

Saludos

Giotto

Anonymous
Not applicable

@v-gizhi-msft

El resultado esperado para la categoría A es del 3% y la categoría es del 82% en función de los últimos datos disponibles (es decir, el índice del 12 de enero hasta el 15 de enero)

Hola

Por favor, intente esto:

Measure = 
VAR a =
    CALCULATE (
        MAX ( 'Table'[value] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Date] = SELECTEDVALUE ( SlicerTable[Date] )
                && 'Table'[Category] IN FILTERS ( 'Table'[Category] )
        )
    )
VAR b =
    IF (
        MAX ( 'Table'[Date] ) = MAX ( SlicerTable[Date] ),
        0,
        DIVIDE ( ( MAX ( 'Table'[value] ) - a ), a )
    )
VAR c =
    CALCULATE (
        MAX ( 'Table'[value] ),
        FILTER ( 'Table', 'Table'[Date] = MAXX ( ALL ( 'Table' ), 'Table'[Date] ) )
    )
        / (
            CALCULATE (
                MAX ( 'Table'[value] ),
                FILTER ( 'Table', 'Table'[Date] = SELECTEDVALUE ( SlicerTable[Date] ) )
            )
        ) - 1
RETURN
    IF ( ISINSCOPE ( 'Table'[Date] ), b, c )

El resultado muestra:

2.PNG

Vea mi archivo pbix adjunto.

Saludos

Giotto

amitchandak
Super User
Super User

@sngo ,Try como

divide(sum(Table[Value]),sumx(filter(all(table), table[date] ?date(2020,01,01)),Table[Value]))*100

Full Power BI Video 20 Hours YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

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