Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.
Check it out now!Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more
Llevo varios días intentando calcular las medidas para determinar cuánto "contribuye" una empresa (ticker) al índice. Por ejemplo, si un índice creció un 30% en un año, ¿cuánto proviene de cada empresa? 4% para ABCD, 10% para XYZW y 16% para XPTO.
Tengo una tabla con las siguientes columnas:
reference_date, teletipo, peso value_variation
El rendimiento diario del índice compuesto por estas empresas se calcula de la siguiente manera:
Sería la suma (value_variation * peso) dividida por la suma (peso) en esa fecha.
El rendimiento acumulado de este índice se calcula de la siguiente manera:
Lo que me gustaría calcular es cuánto contribuye cada ticker a este rendimiento acumulado. La fórmula para calcularlo en una fecha determinada sería:
(rendimiento acumulado hasta esa fecha) * (value_variation del ticker en esa fecha * peso del ticker en esa fecha dividido por el peso total en esa fecha) / (rendimiento del índice en esa fecha).
Luego, la suma de todas estas contribuciones en cada fecha es la contribución total de ese ticker.
El cual calculo de la siguiente manera:
weight_index es esta medida:
weight_index =
VAR TotalWeight = CALCULATE(SUM('COMPOSICAO_DIARIA_INDICES'[weight]), ALLEXCEPT('COMPOSICAO_DIARIA_INDICES', 'Calendario'[Date]))
RETURN DIVIDE(SUMA('COMPOSICAO_DIARIA_INDICES'[peso]), PesoTotal)
Lo que estoy haciendo parece funcionar si no aplico ningún filtro por ticker. Pero si uso un filtro por ticker, los valores no cambian. Por ejemplo, si selecciono solo un ticker y su rendimiento durante el período fue del 20%, entonces su contribución también debería ser del 20%, ya que es el único seleccionado, pero el valor calculado es el mismo con todos los tickers
Hola
Comparta algunos datos con los que trabajar y muestre el resultado esperado en formato de tabla. Comparta datos en un formato que se pueda pegar en un archivo de MS Excel. Si es posible, muestre los encabezados de las columnas en inglés.
Por supuesto, aquí hay un archivo de Excel con 5 días de datos:
https://docs.google.com/spreadsheets/d/19Lpfi-RaovDqNgOCzi58mjzDl6YJdj5f/edit?usp=drive_link&ouid=11...
Además, este es el resultado esperado:
https://docs.google.com/spreadsheets/d/1oz8CxdVENIoDobdXbzOceM7u5tU00_MI/edit?usp=drive_link&ouid=11...
Si te ayuda, este es el código Python que utilicé:
Hola
En el propio archivo same_data, muestre el resultado controlado por la fórmula en Tab2. Traduciré esas fórmulas de Excel a fórmulas DAX.