Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
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.
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:
Aquí está mi archivo pbix de prueba:
Espero que esto ayude.
Saludos
Giotto
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:
Vea mi archivo pbix adjunto.
Saludos
Giotto
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
Gracias @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
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:
Vea mi archivo pbix adjunto.
Saludos
Giotto